/*
Theme Name:   Icelander Child - TAP
Theme URI:    https://tapfl.com/
Description:  Child theme for Icelander — Tag Agency Professionals branding.
Author:       DSG
Template:     icelander
Version:      1.0.0
Text Domain:  icelander-child
*/

/* =============================================
   TAP BRAND TOKENS (Icelander Child Overrides)
   Primary: #FD5003 | Accessible: #C93E00
   WCAG 2.2 AA Compliant
   ============================================= */

:root {
  /* Brand */
  --tap-primary: #FD5003;           /* large text / decorative only on light bg */
  --tap-primary-accessible: #C93E00; /* 4.5:1 on white — use for buttons, links, small text */
  --tap-primary-hover: #B33A00;
  --tap-primary-active: #993100;
  --tap-primary-light: #FFF1EB;
  --tap-primary-light-2: #FFE4D6;

  /* Neutrals */
  --tap-bg: #FAFAF8;
  --tap-surface: #FFFFFF;
  --tap-surface-2: #F5F4F0;
  --tap-divider: #E5E3DF;
  --tap-border: #D4D1CA;

  /* Text */
  --tap-text: #1C1C1C;
  --tap-text-muted: #5A5A5A;
  --tap-text-faint: #8A8A85;
  --tap-text-inverse: #FFFFFF;

  /* Dark surfaces */
  --tap-dark: #1C1C1C;
  --tap-dark-surface: #111111;

  /* Feedback */
  --tap-error: #A13544;
  --tap-success: #437A22;

  /* Radius */
  --tap-radius-md: 0.5rem;
  --tap-radius-lg: 0.75rem;
  --tap-radius-xl: 1rem;
  --tap-radius-full: 9999px;

  /* Fonts (loaded via functions.php) */
  --tap-font-body: 'DM Sans', 'Helvetica Neue', Arial, sans-serif;
  --tap-font-display: 'DM Serif Display', Georgia, serif;

  /* Scroll-padding for sticky header (WCAG 2.4.11 Focus Not Obscured) */
  scroll-padding-top: 6rem;
}

/* --- Base typography overrides --- */
body {
  font-family: var(--tap-font-body);
  color: var(--tap-text);
  background-color: var(--tap-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.page-title,
.site-title {
  font-family: var(--tap-font-display);
  letter-spacing: -0.01em;
  line-height: 1.15;
  text-wrap: balance;
}

/* --- Link & button colors --- */
a {
  color: var(--tap-primary-accessible);
}

a:hover,
a:focus {
  color: var(--tap-primary-hover);
}

/* --- WCAG 2.2: Focus indicators --- */
:focus-visible {
  outline: 3px solid var(--tap-primary) !important;
  outline-offset: 3px !important;
}

/* --- Skip link (Icelander provides one — restyle it) --- */
.skip-link,
a.skip-link {
  background: var(--tap-dark) !important;
  color: var(--tap-text-inverse) !important;
  font-weight: 600 !important;
  border-radius: var(--tap-radius-md) !important;
  padding: 0.75rem 1.5rem !important;
}

/* --- Buttons (Beaver Builder + theme defaults) --- */
.fl-button,
button.button,
.button,
input[type="submit"],
.wp-block-button__link {
  background-color: var(--tap-primary-accessible) !important;
  border-color: var(--tap-primary-accessible) !important;
  color: var(--tap-text-inverse) !important;
  border-radius: var(--tap-radius-full) !important;
  padding: 0.875rem 1.75rem !important;
  font-weight: 600 !important;
  min-height: 48px !important; /* WCAG 2.5.8 target size */
  transition: all 150ms ease;
}

.fl-button:hover,
button.button:hover,
.button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover {
  background-color: var(--tap-primary-hover) !important;
  border-color: var(--tap-primary-hover) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(28, 28, 28, 0.08);
}

/* --- Header --- */
.site-header {
  background: rgba(250, 250, 248, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--tap-divider);
}

.main-navigation a {
  color: var(--tap-text-muted);
  font-weight: 500;
  border-radius: var(--tap-radius-full);
  padding: 0.5rem 1rem;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.main-navigation a:hover,
.main-navigation .current-menu-item > a {
  color: var(--tap-text);
  background: var(--tap-surface-2);
}

/* --- Services (Content Modules / icon boxes from WebMan Amplifier) --- */
/* Scoped to actual content-module elements only.
   Do NOT target .fl-col-content globally here — that paints a box around
   every single Beaver Builder column on every page, including sub-pages.
   Opt in to service-card styling via .tap-service-card on the BB column. */
.content-module,
.wm-content-module,
.fl-module-content-module,
.tap-service-card > .fl-col-content {
  background: var(--tap-surface);
  border: 1px solid var(--tap-divider);
  border-radius: var(--tap-radius-xl);
  padding: 2rem;
  transition: box-shadow 250ms ease, transform 250ms ease;
}

.content-module:hover,
.wm-content-module:hover,
.tap-service-card:hover > .fl-col-content {
  box-shadow: 0 4px 16px rgba(28, 28, 28, 0.08);
  transform: translateY(-2px);
}

.content-module .icon,
.wm-content-module .icon,
.content-module-icon {
  color: var(--tap-primary-accessible);
}

/* --- Featured (first) service card — orange tint --- */
.content-module--featured,
.tap-service-card--featured > .fl-col-content {
  background: var(--tap-primary-light);
  border-color: var(--tap-primary-light-2);
}

/* --- Forms (contact form plugin — WPForms/CF7/Gravity/Ninja) --- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
textarea,
select {
  border: 1px solid var(--tap-border) !important;
  border-radius: var(--tap-radius-md) !important;
  padding: 0.75rem 1rem !important;
  font-size: 1rem !important;
  min-height: 48px !important;
  background: var(--tap-surface) !important;
  color: var(--tap-text) !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus,
select:focus {
  outline: 2px solid var(--tap-primary) !important;
  outline-offset: 1px !important;
  border-color: var(--tap-primary) !important;
}

label {
  font-weight: 600;
  color: var(--tap-text);
  font-size: 0.875rem;
}

/* Required asterisk */
.required,
.gfield_required,
.wpcf7-not-valid-tip,
abbr[title="required"] {
  color: var(--tap-primary-accessible) !important;
}

/* --- Footer --- */
.site-footer {
  background: var(--tap-dark);
  color: rgba(255, 255, 255, 0.7);
}

.site-footer a {
  color: var(--tap-primary);
  /* #FD5003 on #1C1C1C = 5.24:1 — passes AA for text */
}

.site-footer a:hover {
  color: #FFFFFF;
}

.site-footer h3,
.site-footer h4,
.site-footer .widget-title {
  color: #FFFFFF;
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-family: var(--tap-font-body); /* override display font for footer headings */
}

/* --- Hero/Banner rows (Beaver Builder rows set to dark bg) --- */
.fl-row[data-tap-theme="dark"],
.fl-row-bg-photo[data-tap-theme="dark"] {
  background: var(--tap-dark-surface);
  color: var(--tap-text-inverse);
}

.fl-row[data-tap-theme="dark"] h1,
.fl-row[data-tap-theme="dark"] h2 {
  color: #FFFFFF;
}

.fl-row[data-tap-theme="dark"] .fl-button {
  background: var(--tap-primary-accessible) !important;
  color: #FFFFFF !important;
}

/* --- Eyebrow label (use a Heading module with class "tap-eyebrow") --- */
.tap-eyebrow {
  display: inline-block;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--tap-primary-accessible) !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-family: var(--tap-font-body) !important;
  margin-bottom: 0.75rem;
}

/* Eyebrow on dark backgrounds */
.fl-row[data-tap-theme="dark"] .tap-eyebrow {
  color: var(--tap-primary) !important;
}

/* --- Who We Serve chips (use Icon Module or Callout w/ class "tap-chip") --- */
.tap-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  background: var(--tap-surface);
  border: 1px solid var(--tap-divider);
  border-radius: var(--tap-radius-full);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--tap-text);
  white-space: nowrap;
}

.tap-chip .fl-icon,
.tap-chip i {
  color: var(--tap-primary-accessible);
}

/* --- Tables (for privacy page, hours, etc.) --- */
table {
  border-collapse: collapse;
  width: 100%;
}

table th {
  background: var(--tap-surface-2);
  font-weight: 600;
  text-align: left;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--tap-divider);
}

table td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--tap-divider);
  color: var(--tap-text-muted);
}

/* =============================================
   ICELANDER HERO OVERRIDE
   Target: #intro-container "Hello, I'm Icelander"
   Removes background image, replaces with dark
   hero matching the "Fast Title Processing" design
   ============================================= */

/* Hide the header image entirely */
#wp-custom-header,
#intro-media #wp-custom-header,
.intro-media #wp-custom-header,
#intro-media img,
.intro-media img,
#intro-container .intro-media img {
  display: none !important;
}

/* Collapse the intro-media container so it doesn't reserve space */
#intro-media.intro-media,
.intro-container .intro-media {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
}

/* Transform the intro section into a dark hero */
#intro-container.intro-container,
.intro-container {
  background: var(--tap-dark-surface) !important;
  background-image:
    radial-gradient(ellipse at 85% 15%, rgba(253, 80, 3, 0.28) 0%, rgba(253, 80, 3, 0) 55%),
    radial-gradient(ellipse at 15% 90%, rgba(253, 80, 3, 0.10) 0%, rgba(253, 80, 3, 0) 60%) !important;
  color: var(--tap-text-inverse) !important;
  padding: clamp(4rem, 10vw, 7rem) 0 !important;
  position: relative;
  overflow: hidden;
}

/* Override the special layout that splits image/text */
#intro-container .intro-special,
.intro-container .intro-special {
  display: block !important;
  width: 100% !important;
}

/* Intro text wrapper — center & constrain */
#intro-container #intro.intro,
.intro-container .intro {
  width: 100% !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 0 1.5rem !important;
  text-align: left !important;
  background: transparent !important;
}

#intro-container .intro-inner,
.intro-container .intro-inner {
  background: transparent !important;
  padding: 0 !important;
  max-width: 720px;
}

/* Main hero title */
#intro-container .page-title,
#intro-container .intro-title,
.intro-container .page-title,
.intro-container .intro-title,
.intro-container h1.page-title,
.intro-container h2.page-title {
  font-family: var(--tap-font-display) !important;
  font-size: clamp(2.25rem, 5.5vw, 4rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em !important;
  color: #FFFFFF !important;
  margin: 0 0 1.25rem !important;
  font-weight: 400 !important;
  text-wrap: balance;
}

/* Hero subtitle/summary */
#intro-container .page-summary,
#intro-container .entry-summary,
.intro-container .page-summary,
.intro-container .entry-summary,
.intro-container .page-summary p {
  font-family: var(--tap-font-body) !important;
  font-size: clamp(1.05rem, 1.75vw, 1.25rem) !important;
  line-height: 1.55 !important;
  color: rgba(255, 255, 255, 0.78) !important;
  max-width: 62ch;
  margin: 0 0 2rem !important;
}

/* Hero CTA button */
#intro-container .button,
#intro-container .button.size-large,
.intro-container .button,
.intro-container .button.size-large,
.intro .button.size-large {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background-color: var(--tap-primary) !important;
  border: 2px solid var(--tap-primary) !important;
  color: #FFFFFF !important;
  font-family: var(--tap-font-body) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  padding: 0.9rem 1.9rem !important;
  border-radius: var(--tap-radius-full) !important;
  min-height: 48px !important;
  text-decoration: none !important;
  transition: background-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

#intro-container .button:hover,
#intro-container .button:focus,
.intro-container .button:hover,
.intro-container .button:focus,
.intro .button.size-large:hover,
.intro .button.size-large:focus {
  background-color: #FFFFFF !important;
  border-color: #FFFFFF !important;
  color: var(--tap-dark) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}

/* Intro widgets strip under hero — make it consistent on dark */
.intro-widgets-container {
  background: var(--tap-dark) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 2rem 0 !important;
}

.intro-widgets-container .widget-title,
.intro-widgets-container .widget_text .widget-title {
  color: #FFFFFF !important;
  font-family: var(--tap-font-body) !important;
  font-weight: 600 !important;
}

.intro-widgets-container .widget_text,
.intro-widgets-container .widget-text-content,
.intro-widgets-container .widget-text-content p {
  color: rgba(255, 255, 255, 0.75) !important;
}

.intro-widgets-container .widget-symbol,
.intro-widgets-container .widget-text-media-icon i,
.intro-widgets-container .widget-text-media-icon svg {
  color: var(--tap-primary) !important;
  fill: var(--tap-primary) !important;
}

/* =============================================
   CHILD PAGE CARDS
   Target: .list-child-pages articles
   "HOME - PORTFOLIO" / "SHOP" / "COMPANY"
   Transforms the plain gray boxes into styled
   service cards matching the design example
   ============================================= */

#list-child-pages-section.list-child-pages-section {
  background: var(--tap-bg) !important;
  padding: clamp(3rem, 7vw, 5rem) 1.5rem !important;
}

.list-child-pages-container {
  max-width: 1200px;
  margin: 0 auto;
}

.list-child-pages.count-child-pages-3,
.list-child-pages {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 1.5rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Individual card */
article.child-page,
.list-child-pages article.child-page,
.list-child-pages .child-page {
  background: var(--tap-surface) !important;
  border: 1px solid var(--tap-divider) !important;
  border-radius: var(--tap-radius-xl) !important;
  padding: 2rem !important;
  margin: 0 !important;
  box-shadow: 0 1px 2px rgba(28, 28, 28, 0.04);
  transition: box-shadow 250ms ease, transform 250ms ease, border-color 250ms ease;
  position: relative;
  display: flex;
  flex-direction: column;
}

article.child-page:hover,
.list-child-pages article.child-page:hover {
  box-shadow: 0 10px 30px rgba(28, 28, 28, 0.08) !important;
  transform: translateY(-3px);
  border-color: var(--tap-primary-light-2) !important;
}

/* Card title — orange accent + display font */
article.child-page .child-page-title,
.list-child-pages .child-page-title {
  font-family: var(--tap-font-display) !important;
  font-size: clamp(1.35rem, 2.2vw, 1.65rem) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  margin: 0 0 0.75rem !important;
  color: var(--tap-text) !important;
  font-weight: 400 !important;
}

article.child-page .child-page-title a,
.list-child-pages .child-page-title a {
  color: var(--tap-text) !important;
  text-decoration: none !important;
  background: none !important;
}

article.child-page:hover .child-page-title a,
.list-child-pages article.child-page:hover .child-page-title a {
  color: var(--tap-primary-accessible) !important;
}

/* Small orange accent bar above the title */
article.child-page::before,
.list-child-pages article.child-page::before {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  background: var(--tap-primary);
  border-radius: var(--tap-radius-full);
  margin-bottom: 1.25rem;
}

/* Card summary/description */
article.child-page .child-page-summary,
article.child-page .entry-summary,
article.child-page .child-page-summary .entry-summary,
article.child-page .child-page-summary p,
.list-child-pages .entry-summary,
.list-child-pages .entry-summary p {
  font-family: var(--tap-font-body) !important;
  color: var(--tap-text-muted) !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
  margin: 0 0 1.5rem !important;
  flex: 1;
}

/* "Continue reading" more link — styled as text link with arrow */
article.child-page .link-more,
article.child-page .more-link,
.list-child-pages .link-more .more-link,
.list-child-pages .more-link {
  display: inline-flex !important;
  align-items: center;
  gap: 0.4rem;
  color: var(--tap-primary-accessible) !important;
  font-family: var(--tap-font-body) !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  text-decoration: none !important;
  background: none !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  min-height: auto !important;
  margin-top: auto;
  transition: gap 150ms ease, color 150ms ease;
}

article.child-page .link-more::after,
article.child-page .more-link::after,
.list-child-pages .more-link::after {
  content: "\2192"; /* right arrow */
  font-size: 1.1em;
  transition: transform 150ms ease;
}

article.child-page:hover .more-link,
article.child-page .more-link:hover,
.list-child-pages article.child-page:hover .more-link {
  color: var(--tap-primary-hover) !important;
  gap: 0.7rem;
}

article.child-page:hover .more-link::after {
  transform: translateX(3px);
}

/* Make the whole card clickable feel via focus-within */
article.child-page:focus-within {
  outline: 3px solid var(--tap-primary);
  outline-offset: 3px;
}

article.child-page .child-page-title a:focus-visible,
article.child-page .more-link:focus-visible {
  outline: 2px solid var(--tap-primary);
  outline-offset: 2px;
  border-radius: var(--tap-radius-md);
}

/* =============================================
   GLOBAL FONT OVERRIDES
   Force DM Sans / DM Serif Display everywhere,
   overriding any Icelander defaults
   ============================================= */

html,
body,
button,
input,
select,
textarea,
.entry-content,
.entry-summary,
.widget,
.widget p,
.widget li,
.main-navigation,
.main-navigation a,
.site-description,
.post-meta,
.comment-content,
.fl-rich-text,
.fl-module-rich-text,
.fl-callout-text,
.fl-heading-text {
  font-family: var(--tap-font-body) !important;
}

h1, h2, h3, h4, h5, h6,
.site-title,
.site-title a,
.entry-title,
.entry-title a,
.page-title,
.intro-title,
.child-page-title,
.child-page-title a,
.widget-title,
.comments-title,
.comment-reply-title,
.fl-heading,
.fl-callout-title,
.fl-post-title {
  font-family: var(--tap-font-display) !important;
  letter-spacing: -0.01em;
  line-height: 1.15;
}

/* Widget titles in footer/sidebar should use body font for uppercase label style */
.site-footer .widget-title,
.intro-widgets-container .widget-title,
.tap-eyebrow {
  font-family: var(--tap-font-body) !important;
}

/* Nav, buttons, UI chrome always body font */
.main-navigation,
.main-navigation a,
.button,
.fl-button,
button,
.wp-block-button__link,
.more-link,
.link-more a {
  font-family: var(--tap-font-body) !important;
}

/* --- Reduced motion (WCAG 2.3.3) --- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* =============================================
   CUSTOM FRONT PAGE HERO
   ============================================= */

.tap-homepage {
  background: var(--tap-bg);
}

.tap-hero {
  background:
    radial-gradient(ellipse at 85% 15%, rgba(253, 80, 3, 0.28) 0%, rgba(253, 80, 3, 0) 55%),
    radial-gradient(ellipse at 15% 90%, rgba(253, 80, 3, 0.10) 0%, rgba(253, 80, 3, 0) 60%),
    var(--tap-dark-surface);
  color: #ffffff;
  padding: clamp(4rem, 8vw, 7rem) 1.5rem;
}

.tap-hero__inner,
.tap-home-who__inner,
.tap-home-services__inner,
.tap-homepage__content-inner {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.tap-hero__content {
  max-width: 760px;
}

.tap-hero__title {
  font-family: var(--tap-font-display);
  font-size: clamp(2.5rem, 6vw, 5.25rem);
  line-height: 0.98;
  letter-spacing: -0.03em;
  color: #ffffff;
  margin: 0 0 1.5rem;
  text-wrap: balance;
}

.tap-hero__summary p {
  max-width: 62ch;
  margin: 0 0 2rem;
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.84);
}

.tap-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.tap-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.9rem 1.6rem;
  border-radius: 9999px;
  border: 2px solid transparent;
  text-decoration: none;
  font-weight: 700;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, transform 150ms ease;
}

.tap-btn--primary {
  background-color: var(--tap-primary-accessible);
  border-color: var(--tap-primary-accessible);
  color: #ffffff;
}

.tap-btn--primary:hover,
.tap-btn--primary:focus-visible {
  background-color: var(--tap-primary-hover);
  border-color: var(--tap-primary-hover);
  color: #ffffff;
}

.tap-btn--secondary {
  background-color: transparent;
  border-color: rgba(255,255,255,0.35);
  color: #ffffff;
}

.tap-btn--secondary:hover,
.tap-btn--secondary:focus-visible {
  border-color: #ffffff;
  color: #ffffff;
}

/* Remove the big gap between the hero and the first homepage row */
.tap-homepage__content {
  padding: 0 !important;
}

.tap-homepage__content-inner {
  max-width: 100% !important;
  margin: 0 !important;
  width: 100% !important;
}

/* Keep homepage sections aligned with the hero content */
.tap-hero__inner,
.tap-home-who__inner,
.tap-home-services__inner,
.tap-homepage__content-inner,
.tap-subhero__inner,
.tap-subpage__content-inner,
.tap-footer__inner,
.tap-footer__bottom {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Let Beaver Builder rows provide the full-width section backgrounds */
.tap-home-who,
.tap-home-services {
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Constrain only the content inside each homepage section */
.tap-home-who__inner,
.tap-home-services__inner,
.tap-hero__inner {
  width: 100%;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  box-sizing: border-box;
}

/* Hide Icelander's default intro/title area site-wide */
#intro-container,
.intro-container,
#list-child-pages-section,
.list-child-pages-section {
  display: none !important;
}

/* =============================================
   HEADER / NAV REFINEMENT
   Goal: cleaner pill nav like design mockup
   WCAG 2.2 friendly
   ============================================= */

/* Header shell */
.site-header {
  background: rgba(250, 250, 248, 0.96) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--tap-divider) !important;
  box-shadow: none !important;
}

/* Remove extra theme shadows/background tricks in header/nav areas */
.site-header *,
.main-navigation,
.main-navigation ul,
.main-navigation li,
.main-navigation a,
.menu-item a {
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Main nav layout */
.main-navigation a,
.menu-item a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0.7rem 1.1rem !important;
  border-radius: 9999px !important;
  font-family: var(--tap-font-body) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--tap-text-muted) !important;
  background: transparent !important;
  border: 2px solid transparent !important;
  text-decoration: none !important;
  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    color 150ms ease !important;
}

/* Hover state */
.main-navigation a:hover,
.main-navigation a:focus-visible,
.menu-item a:hover,
.menu-item a:focus-visible {
  color: var(--tap-text) !important;
  background: var(--tap-surface-2) !important;
  border-color: var(--tap-border) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Current/active page state */
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-ancestor > a,
.menu-item.current-menu-item > a,
.menu-item.current_page_item > a {
  color: var(--tap-text) !important;
  background: #efede8 !important;
  border-color: #d6d1c8 !important;
  box-shadow: none !important;
}

/* Keep active item stable on hover/focus */
.main-navigation .current-menu-item > a:hover,
.main-navigation .current-menu-item > a:focus-visible,
.main-navigation .current_page_item > a:hover,
.main-navigation .current_page_item > a:focus-visible {
  color: var(--tap-text) !important;
  background: #efede8 !important;
  border-color: #bdb6ab !important;
}

/* Strong, visible keyboard focus for WCAG 2.2 */
.main-navigation a:focus-visible,
.menu-item a:focus-visible {
  outline: 3px solid var(--tap-primary) !important;
  outline-offset: 3px !important;
}

/* Remove theme-added pseudo elements if they create odd highlights */
.main-navigation a::before,
.main-navigation a::after,
.menu-item a::before,
.menu-item a::after {
  box-shadow: none !important;
}

/* Slightly more breathing room as menu grows to 6-8 items */
.main-navigation li,
.menu-item {
  margin: 0 0.15rem !important;
}

/* Optional: header CTA button if it is just a menu item/button in header */
.header-right .button,
.site-header .button,
.site-header .wp-block-button__link,
.site-header .fl-button,
.site-header .menu .button a {
  min-height: 48px !important;
  padding: 0.8rem 1.4rem !important;
  border-radius: 9999px !important;
  box-shadow: none !important;
}

/* Mobile: allow wrapping instead of cramped pills if needed */
@media (max-width: 1100px) {
  .main-navigation a,
  .menu-item a {
    padding: 0.65rem 0.9rem !important;
    font-size: 0.95rem !important;
  }
}

/* Hide Icelander text branding in header */
.site-title,
.site-description,
.site-branding-text,
.site-branding .site-title,
.site-branding .site-description {
  display: none !important;
}

/* Header phone CTA in nav */
.main-navigation .menu-phone > a,
.menu-item.menu-phone > a {
  background-color: var(--tap-primary-accessible) !important;
  border: 2px solid var(--tap-primary-accessible) !important;
  color: #ffffff !important;
  border-radius: 9999px !important;
  min-height: 48px !important;
  padding: 0.8rem 1.35rem !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}

.main-navigation .menu-phone > a:hover,
.main-navigation .menu-phone > a:focus-visible,
.menu-item.menu-phone > a:hover,
.menu-item.menu-phone > a:focus-visible {
  background-color: var(--tap-primary-hover) !important;
  border-color: var(--tap-primary-hover) !important;
  color: #ffffff !important;
}

.main-navigation .menu-phone > a::before,
.menu-item.menu-phone > a::before {
  content: "\260E";
  display: inline-block;
  margin-right: 0.5rem;
  font-size: 0.95em;
}

/* Push phone menu item to the far right */
.main-navigation .menu,
.main-navigation > div > ul,
.main-navigation > ul {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
}

.main-navigation .menu-phone,
.main-navigation .menu-item.menu-phone {
  margin-left: auto !important;
  padding-left: 1rem !important;
}

/* Make header layout flex properly */
.site-header-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2rem !important;
}

.site-branding {
  flex: 0 0 auto !important;
}

.main-navigation {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* Make the nav container take the available width */
.main-navigation-container,
.main-navigation .menu,
.main-navigation .menu > ul,
.main-navigation ul#menu-primary {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
}

/* Keep normal menu items grouped left */
.main-navigation ul#menu-primary > li {
  flex: 0 0 auto !important;
}

/* Push the phone CTA to the far right */
.main-navigation ul#menu-primary > li.menu-phone {
  margin-left: auto !important;
  padding-left: 1.25rem !important;
}

/* Don't let the hidden accessibility skip item interfere with spacing */
.main-navigation ul#menu-primary > li.menu-toggle-skip-link-container {
  margin-left: 0 !important;
  padding-left: 0 !important;
}
.tap-homepage .tap-hero .tap-hero__content .tap-hero__eyebrow,
.tap-homepage .tap-hero .tap-hero__content p.tap-hero__eyebrow {
  display: inline-block !important;
  margin: 0 0 1.25rem !important;
  font-family: var(--tap-font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--tap-primary) !important;
}

/* =============================================
   SUBPAGE HERO TUNING
   Match goal design more closely
   ============================================= */

.tap-subhero {
  background:
    radial-gradient(ellipse at 85% 15%, rgba(253, 80, 3, 0.22) 0%, rgba(253, 80, 3, 0) 55%),
    radial-gradient(ellipse at 15% 90%, rgba(253, 80, 3, 0.08) 0%, rgba(253, 80, 3, 0) 60%),
    var(--tap-dark-surface);
  color: #ffffff;
  padding: clamp(4rem, 7vw, 5.5rem) 1.5rem;
  min-height: 360px;
  display: flex;
  align-items: center;
}

.tap-subhero__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.tap-subhero__content {
  max-width: 760px !important;
}

.tap-subhero__eyebrow {
  display: inline-block !important;
  margin: 0 0 1.25rem !important;
  font-family: var(--tap-font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #FD5003 !important;
}


.tap-subhero__title {
  margin: 0 !important;
  max-width: 20ch !important;
  font-family: var(--tap-font-display) !important;
  font-size: clamp(3.1rem, 5.2vw, 4.75rem) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.02em !important;
  color: #ffffff !important;
  text-wrap: balance !important;
}

@media (max-width: 782px) {
  .tap-subhero {
    min-height: auto;
    padding: 3.5rem 1.25rem;
  }

  .tap-subhero__content {
    max-width: 100%;
  }

  .tap-subhero__title {
    max-width: 10ch;
    font-size: clamp(2.5rem, 10vw, 3.8rem) !important;
  }
}

/* Hide default theme footer credits */
.footer-area-site-info,
.site-info,
.site-footer .site-info {
  display: none !important;
}

/* =============================================
   CUSTOM FOOTER
   ============================================= */

.site-footer {
  background: #171717 !important;
  color: rgba(255, 255, 255, 0.78);
}

.tap-footer {
  background: #171717;
  color: rgba(255, 255, 255, 0.78);
  padding: 4.25rem 1.5rem 1.75rem;
}

.tap-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.2fr 1fr 0.9fr 0.9fr;
  gap: 3rem;
  align-items: start;
}

.tap-footer__brand,
.tap-footer__column {
  min-width: 0;
}

.tap-footer__logo-link {
  display: inline-block;
  margin-bottom: 1.25rem;
}

.tap-footer__logo {
  width: 230px;
  max-width: 100%;
  height: auto;
  display: block;
}

.tap-footer__brand-tagline {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.68);
  max-width: 18ch;
}

.tap-footer__heading {
  margin: 0 0 1.25rem;
  font-family: var(--tap-font-body) !important;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #ffffff;
}

.tap-footer__text,
.tap-footer__address {
  margin: 0 0 0.85rem;
  font-style: normal;
  font-size: 1.05rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.78);
}

.tap-footer a {
  color: #FD5003;
  text-decoration: none;
}

.tap-footer a:hover,
.tap-footer a:focus-visible {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.tap-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tap-footer__links li {
  margin: 0 0 0.7rem;
}

.tap-footer__links li::marker {
  content: "";
}

.tap-footer__links a {
  font-size: 1.05rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
}

.tap-footer__links a:hover,
.tap-footer__links a:focus-visible {
  color: #FD5003;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.tap-footer__bottom {
  max-width: 1200px;
  margin: 3rem auto 0;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.tap-footer__bottom p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.55);
}

@media (max-width: 1100px) {
  .tap-footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }
}

@media (max-width: 700px) {
  .tap-footer {
    padding: 3rem 1.25rem 1.25rem;
  }

  .tap-footer__inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .tap-footer__logo {
    width: 200px;
  }

  .tap-footer__brand-tagline,
  .tap-footer__text,
  .tap-footer__links a {
    font-size: 1rem;
  }
}

/* =============================================
   ABOUT / SUBPAGE CONTENT LAYOUT  (CSS-only — no BB class changes needed)

   Targets the structure Beaver Builder renders inside
   <main class="tap-subpage"> ... <section class="tap-subpage__content">.
   The first .fl-col in each .fl-col-group becomes the main content column;
   any subsequent .fl-col becomes a rounded white sidebar card.

   IMPORTANT: BB ships a cached per-page layout stylesheet
   (fl-builder-layout-<id>-css) that loads AFTER this child theme and sets
   node-specific column widths + float/flex. To win without touching BB, the
   selectors below use `!important` and explicitly override widths + display.
   ============================================= */

/* ---------- Hide the duplicate Icelander intro on subpages ---------- */
body:has(.tap-subhero) #intro-container,
body:has(.tap-subhero) .intro-container {
  display: none !important;
}

/* ---------- Section spacing ---------- */
.tap-subpage .tap-subpage__content {
  padding: 4rem 1.5rem 5rem;
}

.tap-subpage .tap-subpage__content-inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* BB wraps the grid inside .fl-row-content — make sure it fills the
   subpage-content-inner without its own max-width getting in the way. */
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-builder-content,
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-row,
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-row-content-wrap,
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-row-content {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

/* ---------- Column grid — the critical fix ----------
   BB's cached layout CSS sets per-node widths (often 100% for the main col
   and fl-col-small for the sidebar) and uses flex. We replace that with a
   true CSS grid so layout is deterministic regardless of BB's cache. */
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col-group {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 360px !important;
  gap: 2.5rem !important;
  align-items: start !important;
  float: none !important;    /* BB sometimes floats the group */
  width: 100% !important;
}

/* Neutralize BB's per-column widths (node-specific) and floats. */
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col-group > .fl-col {
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  float: none !important;
  clear: none !important;
  flex: 0 1 auto !important;   /* in case something re-flexes them */
  padding: 0 !important;
  margin: 0 !important;
}

/* Remove the legacy global box from any BB column inside a subpage. */
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col,
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col.fl-col-bg-color,
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col > .fl-col-content,
body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col.fl-col-bg-color > .fl-col-content {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* ---------- Main (left) column — transparent ----------
   First .fl-col in each group OR explicit .tap-main-content class. */
.tap-subpage .fl-col-group > .fl-col:first-child > .fl-col-content,
.tap-main-content > .fl-col-content {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

/* ---------- Sidebar (right) columns — rounded white cards ---------- */
.tap-subpage .fl-col-group > .fl-col:not(:first-child) > .fl-col-content,
.tap-sidebar-card,
.tap-sidebar-card > .fl-col-content {
  background: var(--tap-surface) !important;
  border: 1px solid var(--tap-divider) !important;
  border-radius: 1.25rem !important;
  box-shadow: none !important;
  padding: 1.5rem 1.75rem !important;
}

/* When multiple sidebar modules share one column, each Heading+RichText
   group shouldn't become its own inner card — let them stack cleanly. */
.tap-subpage .fl-col-group > .fl-col:not(:first-child) > .fl-col-content > .fl-module + .fl-module {
  margin-top: 0.35rem !important;
}

/* ---------- Typography: main column ---------- */

/* H2 — large serif display (Our Commitment to You) */
.tap-subpage .fl-col-group > .fl-col:first-child > .fl-col-content > h2,
.tap-subpage .fl-col-group > .fl-col:first-child .fl-module-heading,
.tap-subpage .fl-col-group > .fl-col:first-child .fl-module-heading .fl-heading-text,
.tap-main-content h2,
.tap-main-content .fl-heading-text {
  font-family: var(--tap-font-display) !important;
  font-size: clamp(2.25rem, 3.2vw, 2.75rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em !important;
  font-weight: 400 !important;
  color: var(--tap-text) !important;
  margin: 0 0 1.5rem !important;
  padding: 0 !important;
}

/* Lead paragraph — the first h3 inside a rich-text module reads as a lead.
   Tight top margin, modest bottom. */
.tap-subpage .fl-col-group > .fl-col:first-child .fl-module-rich-text > h3:first-child,
.tap-subpage .fl-col-group > .fl-col:first-child .fl-rich-text > h3:first-child,
.tap-main-content .fl-module-rich-text > h3:first-child,
.tap-main-content .fl-rich-text > h3:first-child {
  font-family: var(--tap-font-display) !important;
  font-size: clamp(1.375rem, 1.9vw, 1.625rem) !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  color: var(--tap-text) !important;
  margin: 0 0 1.25rem !important;
}

/* Regular H3s in the main column — used as feature / sub-section headings */
.tap-subpage .fl-col-group > .fl-col:first-child h3,
.tap-main-content h3 {
  font-family: var(--tap-font-body) !important;
  font-size: 1.0625rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  color: var(--tap-text) !important;
  margin: 0 !important;
}

/* Body copy in the main column */
.tap-subpage .fl-col-group > .fl-col:first-child p,
.tap-subpage .fl-col-group > .fl-col:first-child .fl-rich-text p,
.tap-main-content p,
.tap-main-content .fl-rich-text p {
  font-family: var(--tap-font-body) !important;
  font-size: 1.0625rem !important;       /* 17px */
  line-height: 1.65 !important;
  color: var(--tap-text-muted) !important; /* #5A5A5A — 7.5:1 on bg (AAA) */
  margin: 0 0 0.9rem !important;
}

.tap-subpage .fl-col-group > .fl-col:first-child .fl-rich-text p:last-child,
.tap-main-content .fl-rich-text p:last-child {
  margin-bottom: 0 !important;
}

/* Tighter module-to-module rhythm in the main column */
.tap-subpage .fl-col-group > .fl-col:first-child .fl-module,
.tap-main-content .fl-module {
  margin: 0 0 1rem !important;
  padding: 0 !important;
}

.tap-subpage .fl-col-group > .fl-col:first-child .fl-module-rich-text,
.tap-main-content .fl-module-rich-text {
  margin-bottom: 1.25rem !important;
}

/* The rich-text whose only child is the lead <h3> needs a bit more room */
.tap-subpage .fl-col-group > .fl-col:first-child .fl-module-rich-text:has(> h3:only-child),
.tap-main-content .fl-module-rich-text:has(> h3:only-child) {
  margin-bottom: 1.5rem !important;
}

/* ---------- Feature list (BB "List" module with icons) ---------- */
.tap-subpage .fl-col-group > .fl-col:first-child .fl-module-list,
.tap-main-content .fl-module-list {
  margin-top: 1.5rem !important;
  margin-bottom: 0 !important;
}

.tap-subpage .fl-col-group > .fl-col:first-child .fl-list,
.tap-main-content .fl-list {
  margin: 0 !important;
  padding: 0 !important;
}

.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item,
.tap-main-content .fl-list-item {
  margin: 0 0 1.25rem !important;
  padding: 0 !important;
}

.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item:last-child,
.tap-main-content .fl-list-item:last-child {
  margin-bottom: 0 !important;
}

/* Positioning container: icon is absolutely placed in the left gutter,
   heading + body text stack normally in a single column offset to the right.
   This guarantees heading and body sit flush regardless of icon size. */
.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-wrapper,
.tap-main-content .fl-list-item-wrapper {
  position: relative !important;
  display: block !important;
  padding-left: 3.75rem !important;   /* 2.5rem icon + 1rem gap + 0.25rem breathing */
  min-height: 2.5rem !important;
}

/* Heading sits at the top of the text column */
.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-heading,
.tap-main-content .fl-list-item-heading {
  margin: 0 0 0.25rem !important;
  padding: 0 !important;
  display: block !important;
}

.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-heading-text,
.tap-main-content .fl-list-item-heading-text {
  font-family: var(--tap-font-body) !important;
  font-size: 1.0625rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  color: var(--tap-text) !important;
}

/* Content wrapper — flatten (BB's default is flex with icon + text). Icon is
   positioned absolutely (below), text flows normally under the heading. */
.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-content,
.tap-main-content .fl-list-item-content {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Icon bubble — absolutely positioned in the left gutter, top-aligned with
   the heading text (small optical offset for visual centering). */
.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-content-icon,
.tap-main-content .fl-list-item-content-icon {
  position: absolute !important;
  top: 0.1rem !important;
  left: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 2.5rem !important;
  height: 2.5rem !important;
  min-width: 2.5rem !important;
  border-radius: 0.65rem !important;
  background: var(--tap-primary-light) !important;
  color: var(--tap-primary-accessible) !important;
  margin: 0 !important;
}

.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-icon,
.tap-main-content .fl-list-item-icon {
  font-size: 1rem !important;
  line-height: 1 !important;
  color: inherit !important;
}

/* Text column — flows directly under the heading (no grid alignment needed). */
.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-content-text,
.tap-main-content .fl-list-item-content-text {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

.tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-content-text p,
.tap-main-content .fl-list-item-content-text p {
  margin: 0 !important;
  font-size: 1rem !important;
  line-height: 1.55 !important;
  color: var(--tap-text-muted) !important;
}

/* Defensive: neutralize the stray empty .about-feature wrappers BB emits
   inside list items (they'd otherwise add phantom margins). */
.tap-subpage .fl-list-item .about-feature,
.tap-subpage .fl-list-item .about-feature-icon,
.tap-subpage .fl-list-item .about-main,
.tap-subpage .fl-list-item .about-features {
  display: contents !important;
}

.tap-subpage .fl-list-item .about-feature-icon:empty,
.tap-subpage .fl-list-item .about-feature > div:empty {
  display: none !important;
}

/* BB sometimes emits a stray second .about-feature with an .about-feature-icon
   filled with &nbsp; (so :empty doesn't match). Legitimate feature content
   inside list items never nests an .about-feature-icon, so hiding any
   .about-feature that contains one reliably kills the phantom block. */
.tap-subpage .fl-list-item .about-feature:has(.about-feature-icon),
.tap-subpage .fl-list-item .fl-list-item-content-text > .about-feature ~ .about-feature {
  display: none !important;
}

/* ---------- Sidebar card typography ---------- */
.tap-subpage .fl-col-group > .fl-col:not(:first-child) h2,
.tap-subpage .fl-col-group > .fl-col:not(:first-child) h3,
.tap-subpage .fl-col-group > .fl-col:not(:first-child) .fl-heading-text,
.tap-sidebar-card h2,
.tap-sidebar-card h3,
.tap-sidebar-card .fl-heading-text {
  font-family: var(--tap-font-body) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  color: var(--tap-text) !important;
  margin: 0 0 0.75rem !important;
  padding: 0 !important;
  /* Intentionally NOT display: flex here — BB renders headings with
     surrounding whitespace/tab text nodes, and flex + gap would treat
     each whitespace run as a flex item and push the visible text to
     the right. Plain block keeps "Location" flush with the address. */
  display: block !important;
  text-align: left !important;
  text-indent: 0 !important;
}

/* Sidebar module spacing */
.tap-subpage .fl-col-group > .fl-col:not(:first-child) .fl-module {
  margin: 0 !important;
  padding: 0 !important;
}

.tap-subpage .fl-col-group > .fl-col:not(:first-child) .fl-module-rich-text {
  margin-bottom: 0.25rem !important;
}

/* Sidebar body copy */
.tap-subpage .fl-col-group > .fl-col:not(:first-child) p,
.tap-subpage .fl-col-group > .fl-col:not(:first-child) li,
.tap-subpage .fl-col-group > .fl-col:not(:first-child) a,
.tap-subpage .fl-col-group > .fl-col:not(:first-child) address,
.tap-sidebar-card p,
.tap-sidebar-card li,
.tap-sidebar-card a,
.tap-sidebar-card address {
  font-family: var(--tap-font-body) !important;
  font-size: 0.9375rem !important;  /* 15px — matches mockup */
  line-height: 1.55 !important;
  color: var(--tap-text) !important;
  font-style: normal !important;
  margin: 0 0 0.2rem !important;
}

/* Sidebar links — WCAG AA compliant */
.tap-subpage .fl-col-group > .fl-col:not(:first-child) a,
.tap-sidebar-card a {
  color: var(--tap-primary-accessible) !important; /* 4.5:1 on white */
  text-decoration: none !important;
  border-radius: 2px;
}

.tap-subpage .fl-col-group > .fl-col:not(:first-child) a:hover,
.tap-subpage .fl-col-group > .fl-col:not(:first-child) a:focus-visible,
.tap-sidebar-card a:hover,
.tap-sidebar-card a:focus-visible {
  color: var(--tap-primary-hover) !important;
  text-decoration: underline !important;
  text-underline-offset: 0.18em;
}

/* ---------- Responsive: collapse the grid ---------- */
@media (max-width: 999px) {
  body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col-group {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }
}

@media (max-width: 600px) {
  .tap-subpage .tap-subpage__content {
    padding: 2.5rem 1.25rem 3.5rem;
  }

  .tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-wrapper,
  .tap-subpage .fl-col-group > .fl-col:first-child .fl-list-item-content,
  .tap-main-content .fl-list-item-wrapper,
  .tap-main-content .fl-list-item-content {
    grid-template-columns: 2.5rem 1fr !important;
    column-gap: 0.75rem !important;
  }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .tap-subpage * {
    transition: none !important;
    animation: none !important;
  }
}
.tap-sidebar-stack {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
  width: 100% !important;
}

.tap-info-card {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  background: var(--tap-surface) !important;
  border: 1px solid var(--tap-divider) !important;
  border-radius: 1.25rem !important;
  padding: 1.5rem 1.5rem 1.6rem !important;
  box-shadow: none !important;
}

.tap-info-card__title {
  display: flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  margin: 0 0 1rem !important;
  font-family: var(--tap-font-body) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: var(--tap-text) !important;
}

.tap-info-card__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1rem !important;
  height: 1rem !important;
  color: var(--tap-primary-accessible) !important;
  flex: 0 0 1rem !important;
}

.tap-info-card__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.tap-info-card__address {
  margin: 0 0 1rem !important;
  font-style: normal !important;
}

.tap-info-card p,
.tap-info-card address p,
.tap-info-card td,
.tap-info-card a {
  font-family: var(--tap-font-body) !important;
  font-size: 1rem !important;
  line-height: 1.65 !important;
}

.tap-info-card p,
.tap-info-card address p {
  margin: 0 0 0.25rem !important;
  color: var(--tap-text-muted) !important;
}

.tap-info-card a {
  color: var(--tap-primary-accessible) !important;
  text-decoration: none !important;
}

.tap-info-card a:hover,
.tap-info-card a:focus-visible {
  color: var(--tap-primary-hover) !important;
  text-decoration: underline !important;
  text-underline-offset: 0.18em !important;
}

.tap-info-card__link-wrap {
  margin-top: 0.75rem !important;
}

.tap-hours-table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin-top: 0.25rem !important;
}

.tap-hours-table td {
  padding: 0.5rem 0 !important;
  border-bottom: 0 !important; /* removes lines between hours */
  color: var(--tap-text-muted) !important;
  vertical-align: top !important;
}

.tap-hours-table td:first-child {
  text-align: left !important;
  padding-right: 1rem !important;
}

.tap-hours-table td:last-child {
  text-align: right !important;
  color: var(--tap-text) !important;
  white-space: nowrap !important;
}

.tap-hours-table .is-closed td {
  color: var(--tap-text-faint) !important;
}

@media (max-width: 768px) {
  .tap-info-card {
    padding: 1.35rem 1.25rem 1.45rem !important;
  }
}

/* Remove the big outer sidebar box */
.tap-subpage .fl-col-group > .fl-col:not(:first-child) > .fl-col-content {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Optional: if Beaver Builder adds extra inner wrapper spacing */
.tap-subpage .fl-col-group > .fl-col:not(:first-child) .fl-module,
.tap-subpage .fl-col-group > .fl-col:not(:first-child) .fl-module-content {
  margin: 0 !important;
  padding: 0 !important;
}
.tap-sidebar-stack,
.tap-sidebar-stack > div,
.tap-sidebar-stack .tap-info-card {
  width: 100% !important;
  max-width: none !important;
}
.tap-subpage .fl-col-group > .fl-col:last-child,
.tap-subpage .fl-col-group > .fl-col:last-child > .fl-col-content,
.tap-subpage .fl-col-group > .fl-col:last-child .fl-module,
.tap-subpage .fl-col-group > .fl-col:last-child .fl-module-content,
.tap-subpage .fl-col-group > .fl-col:last-child .fl-html,
.tap-subpage .fl-col-group > .fl-col:last-child .fl-html-content {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

.tap-sidebar-stack {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
  width: 100% !important;
}

.tap-sidebar-stack .tap-info-card {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}
/* --- Sidebar heading icon alignment fix --- */
.tap-info-card__title {
  display: flex !important;
  align-items: baseline !important;
  gap: 0.45rem !important;
  margin: 0 0 1rem !important;
  font-family: var(--tap-font-body) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  color: var(--tap-text) !important;
}

.tap-info-card__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 0.95rem !important;
  height: 0.95rem !important;
  flex: 0 0 0.95rem !important;
  color: var(--tap-primary-accessible) !important;
  position: relative !important;
  top: 0.06em !important;
}

.tap-info-card__icon svg {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

/* --- Remove all business-hours row lines --- */
.tap-info-card .tap-hours-table,
.tap-info-card .tap-hours-table tbody,
.tap-info-card .tap-hours-table tr,
.tap-info-card .tap-hours-table td {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.tap-info-card .tap-hours-table td {
  padding: 0.5rem 0 !important;
}

.tap-info-card .tap-hours-table tr + tr td {
  border-top: 0 !important;
}

.tap-info-card .tap-hours-table td:first-child {
  text-align: left !important;
  padding-right: 1rem !important;
}

.tap-info-card .tap-hours-table td:last-child {
  text-align: right !important;
  white-space: nowrap !important;
  color: var(--tap-text) !important;
}

.tap-info-card .tap-hours-table .is-closed td {
  color: var(--tap-text-faint) !important;
}

.tap-services-full-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.5rem !important;
  width: 100% !important;
  max-width: none !important;
}

.tap-sf-card {
  background: var(--tap-surface);
  border: 1px solid var(--tap-divider);
  border-radius: 1.25rem;
  padding: 1.75rem;
  box-shadow: 0 1px 2px rgba(28, 28, 28, 0.04);
  transition: box-shadow 250ms ease, transform 250ms ease, border-color 250ms ease;
}

.tap-sf-card:hover {
  box-shadow: 0 10px 30px rgba(28, 28, 28, 0.08);
  transform: translateY(-3px);
  border-color: var(--tap-primary-light-2);
}

.tap-sf-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin-bottom: 1rem;
  border-radius: 0.85rem;
  background: var(--tap-primary-light);
  color: var(--tap-primary-accessible);
}

.tap-sf-icon svg {
  width: 1.2rem;
  height: 1.2rem;
  display: block;
}

.tap-sf-card h3 {
  margin: 0 0 0.7rem;
  font-family: var(--tap-font-body);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--tap-text);
}

.tap-sf-card p {
  margin: 0;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--tap-text-muted);
}

@media (max-width: 1100px) {
  .tap-services-full-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  .tap-services-full-grid {
    grid-template-columns: 1fr !important;
  }

  .tap-sf-card {
    padding: 1.5rem;
  }
}
/* =============================================
   FULL-WIDTH PAGE TEMPLATE
   Use with template-full-width.php
   ============================================= */

/* Only apply the 2-column layout to normal subpages */

/* Full-width template: remove forced sidebar layout */
.tap-subpage--fullwidth .tap-subpage__content {
  padding: 4rem 1.5rem 5rem;
}

.tap-subpage--fullwidth .tap-subpage__content-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.tap-subpage--fullwidth .fl-builder-content,
.tap-subpage--fullwidth .fl-row,
.tap-subpage--fullwidth .fl-row-content-wrap,
.tap-subpage--fullwidth .fl-row-content {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.tap-subpage--fullwidth .fl-col-group {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 0 !important;
}

.tap-subpage--fullwidth .fl-col,
.tap-subpage--fullwidth .fl-col > .fl-col-content,
.tap-subpage--fullwidth .fl-module,
.tap-subpage--fullwidth .fl-module-content,
.tap-subpage--fullwidth .fl-html,
.tap-subpage--fullwidth .fl-html-content {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  float: none !important;
  clear: none !important;
}

/* Remove any inherited card styling from sidebar rules */
.tap-subpage--fullwidth .fl-col,
.tap-subpage--fullwidth .fl-col.fl-col-bg-color,
.tap-subpage--fullwidth .fl-col > .fl-col-content,
.tap-subpage--fullwidth .fl-col.fl-col-bg-color > .fl-col-content {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

@media (max-width: 999px) {
  .tap-subpage--fullwidth .tap-subpage__content {
    padding: 3rem 1.25rem 4rem;
  }
}
.tap-home-who {
  background: transparent;
  padding: 0;
  margin: 0;
  width: auto;
}

.tap-home-who__inner {
  max-width: 1200px !important;
  margin: 0 auto;
  padding: clamp(4.5rem, 8vw, 7rem) 1.5rem;
}

.tap-home-who__header {
  max-width: 820px;
  margin-bottom: 2.5rem;
}

.tap-home-who__eyebrow {
  margin: 0 0 1rem;
  font-family: var(--tap-font-body);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tap-primary-accessible);
}

.tap-home-who__title {
  margin: 0 0 1rem;
  font-family: var(--tap-font-display);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--tap-text);
  text-wrap: balance;
}

.tap-home-who__description {
  max-width: 42rem;
  margin: 0;
  font-family: var(--tap-font-body);
  font-size: clamp(1.05rem, 1.7vw, 1.2rem);
  line-height: 1.6;
  color: var(--tap-text-muted);
}

.tap-home-who__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}

.tap-home-who__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 48px;
  padding: 0.9rem 1.35rem;
  background: var(--tap-surface);
  border: 1px solid var(--tap-divider);
  border-radius: 9999px;
  box-shadow: none;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--tap-text);
}

.tap-home-who__chip-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  flex: 0 0 1rem;
  color: var(--tap-primary-accessible);
}

.tap-home-who__chip-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

@media (max-width: 768px) {
  .tap-home-who {
    padding: 3.5rem 1.25rem;
  }

  .tap-home-who__header {
    margin-bottom: 2rem;
  }

  .tap-home-who__chips {
    gap: 0.75rem;
  }

  .tap-home-who__chip {
    width: 100%;
    justify-content: flex-start;
  }
}
.tap-home-services {
  background: var(--tap-bg);
  padding: clamp(4.5rem, 8vw, 7rem) 1.5rem;
}

.tap-home-services__inner {
  max-width: 1200px !important;
  margin: 0 auto;
}

.tap-home-services__header {
  max-width: 820px;
  margin-bottom: 2.75rem;
}

.tap-home-services__eyebrow {
  margin: 0 0 1rem;
  font-family: var(--tap-font-body);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tap-primary-accessible);
}

.tap-home-services__title {
  margin: 0 0 1rem;
  font-family: var(--tap-font-display);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--tap-text);
  text-wrap: balance;
}

.tap-home-services__description {
  max-width: 42rem;
  margin: 0;
  font-family: var(--tap-font-body);
  font-size: clamp(1.05rem, 1.7vw, 1.2rem);
  line-height: 1.6;
  color: var(--tap-text-muted);
}

.tap-home-services__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.tap-home-service-card {
  background: var(--tap-surface);
  border: 1px solid var(--tap-divider);
  border-radius: 1.25rem;
  padding: 2rem;
  box-shadow: none;
}

.tap-home-service-card--featured {
  background: var(--tap-primary-light);
  border-color: var(--tap-primary-light-2);
}

.tap-home-service-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin-bottom: 1.3rem;
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.55);
  color: var(--tap-primary-accessible);
}

.tap-home-service-card__icon svg {
  width: 1.2rem;
  height: 1.2rem;
  display: block;
}

.tap-home-service-card h3 {
  margin: 0 0 0.85rem;
  font-family: var(--tap-font-display);
  font-size: clamp(1.5rem, 2vw, 1.9rem);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--tap-text);
  text-wrap: balance;
}

.tap-home-service-card p {
  margin: 0;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--tap-text-muted);
}

.tap-home-services__cta {
  display: flex;
  justify-content: center;
  margin-top: 2.25rem;
}

.tap-home-services__button {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 48px;
  padding: 0.95rem 1.5rem;
  border: 1px solid var(--tap-border);
  border-radius: 9999px;
  background: transparent;
  color: var(--tap-text);
  font-family: var(--tap-font-body);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

.tap-home-services__button:hover,
.tap-home-services__button:focus-visible {
  background: var(--tap-surface);
  border-color: var(--tap-primary-accessible);
  color: var(--tap-text);
  text-decoration: none;
}

.tap-home-services__button:focus-visible {
  outline: 3px solid var(--tap-primary);
  outline-offset: 3px;
}

.tap-home-services__button-icon {
  font-size: 1.15em;
  line-height: 1;
}

@media (max-width: 1024px) {
  .tap-home-services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .tap-home-services {
    padding: 3.5rem 1.25rem;
  }

  .tap-home-services__header {
    margin-bottom: 2rem;
  }

  .tap-home-services__grid {
    grid-template-columns: 1fr;
  }

  .tap-home-service-card {
    padding: 1.6rem;
  }

  .tap-home-services__cta {
    justify-content: stretch;
  }

  .tap-home-services__button {
    width: 100%;
    justify-content: center;
  }
}
/* Keep the row itself full width on the homepage */
.tap-homepage__content {
  padding: 0 !important;
}

.tap-homepage__content-inner {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Let the Beaver Builder row provide the full-width background band */
.tap-home-who {
  background: transparent !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Constrain only the content inside the band */
.tap-home-who__inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: clamp(4.5rem, 8vw, 7rem) 1.5rem !important;
  box-sizing: border-box !important;
}
.tap-home-why {
  background: var(--tap-bg);
  padding: clamp(4.5rem, 8vw, 7rem) 1.5rem;
}

.tap-home-why__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.tap-home-why__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 446px);
  gap: clamp(2rem, 4vw, 5rem);
  align-items: center;
}

.tap-home-why__content {
  min-width: 0;
}

.tap-home-why__eyebrow {
  margin: 0 0 1rem;
  font-family: var(--tap-font-body);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tap-primary-accessible);
}

.tap-home-why__title {
  margin: 0 0 1.25rem;
  max-width: 10ch;
  font-family: var(--tap-font-display);
  line-height: 0.96;
  letter-spacing: -0.025em;
  color: var(--tap-text);
  text-wrap: balance;
}

.tap-home-why__description {
  max-width: 32rem;
  margin: 0 0 2rem;
  font-family: var(--tap-font-body);
  font-size: clamp(1.05rem, 1.7vw, 1.2rem);
  line-height: 1.7;
  color: var(--tap-text-muted);
}

.tap-home-why__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tap-home-why__list li {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin: 0 0 1rem;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--tap-text);
}

.tap-home-why__list li:last-child {
  margin-bottom: 0;
}

.tap-home-why__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.4rem;
  height: 1.4rem;
  flex: 0 0 1.4rem;
  margin-top: 0.08rem;
  border: 2px solid var(--tap-primary-accessible);
  border-radius: 9999px;
  color: var(--tap-primary-accessible);
}

.tap-home-why__check svg {
  width: 0.78rem;
  height: 0.78rem;
  display: block;
}

.tap-home-why__list a {
  color: var(--tap-primary-accessible);
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.tap-home-why__list a:hover,
.tap-home-why__list a:focus-visible {
  color: var(--tap-primary-hover);
}

.tap-home-why__card {
  background:
    radial-gradient(ellipse at 82% 16%, rgba(253, 80, 3, 0.26) 0%, rgba(253, 80, 3, 0) 56%),
    linear-gradient(135deg, #161616 0%, #111111 100%);
  border-radius: 1.5rem;
  padding: clamp(2rem, 4vw, 3rem);
  color: #ffffff;
  text-align: center;
  min-height: 380px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}

.tap-home-why__card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin: 0 auto 1.5rem;
  color: var(--tap-primary);
}

.tap-home-why__card-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.tap-home-why__card-address {
  margin: 0 0 0.75rem;
  font-family: var(--tap-font-display);
  font-size: clamp(2rem, 3vw, 2.5rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: #ffffff;
  text-wrap: balance;
}

.tap-home-why__card-city {
  margin: 0;
  font-family: var(--tap-font-body);
  font-size: 1.05rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.78);
}

.tap-home-why__card-divider {
  width: min(100%, 220px);
  height: 1px;
  margin: 2rem auto 1.75rem;
  background: rgba(255, 255, 255, 0.14);
}

.tap-home-why__card-hours-label {
  margin: 0 0 0.7rem;
  font-family: var(--tap-font-body);
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.58);
}

.tap-home-why__card-hours-time {
  margin: 0;
  font-family: var(--tap-font-body);
  font-size: 1.05rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.92);
}

@media (max-width: 980px) {
  .tap-home-why__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .tap-home-why__title,
  .tap-home-why__description {
    max-width: none;
  }

  .tap-home-why__card {
    max-width: 520px;
    margin: 0 auto;
    min-height: auto;
  }
}

@media (max-width: 768px) {
  .tap-home-why {
    padding: 3.5rem 1.25rem;
  }

  .tap-home-why__card {
    padding: 2rem 1.5rem;
  }
}

.tap-home-who__title,
.tap-home-services__title,
.tap-home-why__title {
  margin: 0 0 1rem !important;
  font-family: var(--tap-font-display) !important;
  font-size: clamp(2.5rem, 5vw, 3.5rem) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.02em !important;
  color: var(--tap-text) !important;
  text-wrap: balance;
}

/* =============================================
   HOMEPAGE SECTION PATCH
   Fix overlap + why-section width/wrapping/background
   ============================================= */

/* Let homepage rows grow naturally and not clip content */
.tap-homepage .fl-row,
.tap-homepage .fl-row-content-wrap,
.tap-homepage .fl-row-content,
.tap-homepage .fl-col-group,
.tap-homepage .fl-col,
.tap-homepage .fl-col-content,
.tap-homepage .fl-module,
.tap-homepage .fl-module-content {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

/* Keep these sections transparent so they don't look boxed */
.tap-home-services,
.tap-home-why {
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  position: relative;
  z-index: 1;
}

/* Inner spacing only */
.tap-home-services__inner,
.tap-home-why__inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: clamp(4.5rem, 8vw, 7rem) 1.5rem !important;
  box-sizing: border-box !important;
}

/* Force the why section heading to two lines instead of three */
.tap-home-why__title {
  max-width: 12ch !important;
  font-size: clamp(2.5rem, 5vw, 3.5rem) !important; /* max 56px */
  line-height: 0.98 !important;
}

/* Mobile: let it breathe naturally */
@media (max-width: 768px) {
  .tap-home-why__title {
    max-width: none !important;
  }

  .tap-home-services__inner,
  .tap-home-why__inner {
    padding: 3.5rem 1.25rem !important;
  }
}
/* Why section: keep the row background band, remove inner boxed look */
.tap-home-why {
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.tap-home-why__inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: clamp(4.5rem, 8vw, 7rem) 1.5rem !important;
  box-sizing: border-box !important;
}

/* Make sure the BB wrappers don't paint their own box */
.tap-homepage .fl-node-31q7nhxfeyso,
.tap-homepage .fl-node-31q7nhxfeyso .fl-row-content-wrap,
.tap-homepage .fl-node-31q7nhxfeyso .fl-row-content,
.tap-homepage .fl-node-31q7nhxfeyso .fl-col,
.tap-homepage .fl-node-31q7nhxfeyso .fl-col-content,
.tap-homepage .fl-node-31q7nhxfeyso .fl-module,
.tap-homepage .fl-node-31q7nhxfeyso .fl-module-content {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* Keep the section from overlapping and force the heading to 2 lines */
.tap-home-why__title {
  max-width: 12ch !important;
  font-size: clamp(2.5rem, 5vw, 3.5rem) !important;
  line-height: 0.98 !important;
}

.tap-homepage .fl-row,
.tap-homepage .fl-row-content-wrap,
.tap-homepage .fl-row-content,
.tap-homepage .fl-col-group,
.tap-homepage .fl-col,
.tap-homepage .fl-col-content,
.tap-homepage .fl-module,
.tap-homepage .fl-module-content {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}
.tap-home-cta {
  background: var(--tap-bg);
  padding: clamp(3.5rem, 6vw, 5.5rem) 1.5rem;
}

.tap-home-cta__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.tap-home-cta__card {
  background:
    radial-gradient(ellipse at 14% 18%, rgba(253, 80, 3, 0.22) 0%, rgba(253, 80, 3, 0) 42%),
    linear-gradient(90deg, #181818 0%, #111111 100%);
  border-radius: 1.75rem;
  padding: clamp(2rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: center;
  color: #ffffff;
}

.tap-home-cta__content {
  min-width: 0;
}

.tap-home-cta__title {
  margin: 0 0 1rem;
  max-width: 11ch;
  font-family: var(--tap-font-display);
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: #ffffff;
  text-wrap: balance;
}

.tap-home-cta__description {
  max-width: 34rem;
  margin: 0;
  font-family: var(--tap-font-body);
  font-size: clamp(1.05rem, 1.7vw, 1.2rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.78);
}

.tap-home-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-end;
}

.tap-home-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-height: 48px;
  padding: 0.95rem 1.5rem;
  border-radius: 9999px;
  border: 2px solid transparent;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, transform 150ms ease;
}

.tap-home-cta__button:hover {
  transform: translateY(-1px);
}

.tap-home-cta__button--primary {
  background: var(--tap-primary-accessible);
  border-color: var(--tap-primary-accessible);
  color: #ffffff;
}

.tap-home-cta__button--primary:hover,
.tap-home-cta__button--primary:focus-visible {
  background: var(--tap-primary-hover);
  border-color: var(--tap-primary-hover);
  color: #ffffff;
}

.tap-home-cta__button--secondary {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.28);
  color: #ffffff;
}

.tap-home-cta__button--secondary:hover,
.tap-home-cta__button--secondary:focus-visible {
  border-color: rgba(255, 255, 255, 0.6);
  color: #ffffff;
}

.tap-home-cta__button:focus-visible {
  outline: 3px solid var(--tap-primary);
  outline-offset: 3px;
}

.tap-home-cta__button-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 1.05rem;
}

.tap-home-cta__button-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

@media (max-width: 980px) {
  .tap-home-cta__card {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .tap-home-cta__title,
  .tap-home-cta__description {
    max-width: none;
  }

  .tap-home-cta__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 768px) {
  .tap-home-cta {
    padding: 3rem 1.25rem;
  }

  .tap-home-cta__card {
    padding: 2rem 1.5rem;
  }

  .tap-home-cta__actions {
    flex-direction: column;
  }

  .tap-home-cta__button {
    width: 100%;
    justify-content: center;
  }
}
.tap-companies-hero {
  background:
    radial-gradient(ellipse at 88% 16%, rgba(253, 80, 3, 0.28) 0%, rgba(253, 80, 3, 0) 45%),
    radial-gradient(ellipse at 8% 86%, rgba(253, 80, 3, 0.14) 0%, rgba(253, 80, 3, 0) 46%),
    var(--tap-dark-surface);
  padding: clamp(4rem, 7vw, 6rem) 1.5rem 5rem;
  color: #fff;
}

.tap-companies-hero__inner,
.tap-companies-cta__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.tap-companies-hero__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 3rem;
  align-items: start;
  margin-bottom: 3rem;
}

.tap-companies-hero__content {
  max-width: 680px;
}

.tap-companies-hero__eyebrow {
  display: inline-block !important;
  margin: 0 0 1.25rem !important;
  font-family: var(--tap-font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--tap-primary) !important;
}

.tap-companies-hero__title {
  margin: 0 0 1.5rem;
  font-family: var(--tap-font-display);
  font-size: clamp(3rem, 5vw, 4.5rem);
  line-height: 0.95;
  letter-spacing: -0.025em;
  color: #fff;
}

.tap-companies-hero__title em {
  color: var(--tap-primary);
  font-style: italic;
}

.tap-companies-hero__description {
  max-width: 62ch !important;
  margin: 0 !important;
  font-family: var(--tap-font-body) !important;
  font-size: clamp(1.1rem, 2vw, 1.4rem) !important;
  line-height: 1.6 !important;
  color: rgba(255, 255, 255, 0.84) !important;
}

.tap-companies-logo-card {
  background: #fff;
  border-radius: 1.25rem;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

.tap-companies-logo-card img {
  display: block;
  max-width: 100%;
  height: auto;
}

.tap-companies-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.tap-company-card {
  background: #fff;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 1.25rem;
  min-height: 250px;
  padding: 1.75rem 1.5rem;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.tap-company-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}

.tap-company-card__logo img {
  display: block;
  max-width: 92%;
  max-height: 108px;
  width: auto;
  height: auto;
}

.tap-company-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  font-weight: 700;
  color: var(--tap-primary-accessible);
}

.tap-company-card:hover .tap-company-card__cta,
.tap-company-card:focus-visible .tap-company-card__cta {
  color: var(--tap-primary-hover);
}

.tap-company-card:focus-visible {
  outline: 3px solid var(--tap-primary);
  outline-offset: 4px;
}

.tap-companies-cta {
  background: var(--tap-surface-2);
  padding: 4rem 1.5rem;
}

.tap-companies-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: center;
}

.tap-companies-cta__title {
  margin: 0 0 0.75rem;
  font-family: var(--tap-font-display);
  font-size: clamp(2.25rem, 4vw, 3rem);
  line-height: 1.02;
  color: var(--tap-text);
}

.tap-companies-cta__description {
  margin: 0;
  max-width: 38rem;
  font-family: var(--tap-font-body);
  font-size: 1.15rem;
  line-height: 1.7;
  color: var(--tap-text-muted);
}

.tap-companies-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-end;
}

.tap-companies-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.95rem 1.5rem;
  border-radius: 9999px;
  border: 2px solid transparent;
  text-decoration: none;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  font-weight: 700;
}

.tap-companies-cta__button--primary {
  background: var(--tap-primary-accessible);
  border-color: var(--tap-primary-accessible);
  color: #fff;
}

.tap-companies-cta__button--primary:hover,
.tap-companies-cta__button--primary:focus-visible {
  background: var(--tap-primary-hover);
  border-color: var(--tap-primary-hover);
  color: #fff;
}

.tap-companies-cta__button--secondary {
  background: transparent;
  border-color: var(--tap-border);
  color: var(--tap-text);
}

.tap-companies-cta__button--secondary:hover,
.tap-companies-cta__button--secondary:focus-visible {
  border-color: var(--tap-primary-accessible);
  color: var(--tap-text);
}

.tap-companies-cta__button:focus-visible {
  outline: 3px solid var(--tap-primary);
  outline-offset: 3px;
}

@media (max-width: 1024px) {
  .tap-companies-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tap-companies-hero__top,
  .tap-companies-cta__inner {
    grid-template-columns: 1fr;
  }

  .tap-companies-cta__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 700px) {
  .tap-companies-hero,
  .tap-companies-cta {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .tap-companies-grid {
    grid-template-columns: 1fr;
  }

  .tap-companies-cta__actions {
    flex-direction: column;
  }

  .tap-companies-cta__button {
    width: 100%;
  }
}
/* =============================================
   COMPANIES PAGE
   Hide default hero + make companies section full width
   ============================================= */

/* Hide the normal page hero only when the companies section exists */
body:has(.tap-companies-hero) .tap-subhero {
  display: none !important;
}

/* Remove the normal subpage content padding/wrapper on the companies page */
body:has(.tap-companies-hero) .tap-subpage__content {
  padding: 0 !important;
}

body:has(.tap-companies-hero) .tap-subpage__content-inner,
body:has(.tap-companies-hero) .fl-builder-content,
body:has(.tap-companies-hero) .fl-row,
body:has(.tap-companies-hero) .fl-row-content-wrap,
body:has(.tap-companies-hero) .fl-row-content,
body:has(.tap-companies-hero) .fl-col-group,
body:has(.tap-companies-hero) .fl-col,
body:has(.tap-companies-hero) .fl-col-content,
body:has(.tap-companies-hero) .fl-module,
body:has(.tap-companies-hero) .fl-module-content,
body:has(.tap-companies-hero) .fl-html,
body:has(.tap-companies-hero) .fl-html-content {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
  background: transparent !important;
}

/* Let the companies hero band run full width */
.tap-companies-hero,
.tap-companies-cta {
  width: 100% !important;
  margin: 0 !important;
}

/* Keep only the inner content constrained */
.tap-companies-hero__inner,
.tap-companies-cta__inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
  box-sizing: border-box !important;
}
/* =============================================
   HERO ALIGNMENT + COMPANIES TEXT FIX
   ============================================= */

/* 1) Use the same inner width / left-right gutter for all hero sections */
.tap-hero__inner,
.tap-subhero__inner,
.tap-companies-hero__inner {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
  box-sizing: border-box !important;
}

/* Make sure the home and companies hero content doesn't get nudged inward */
.tap-hero__content,
.tap-companies-hero__content {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* 2) Companies eyebrow: match home hero orange styling exactly */
.tap-subpage .fl-col-group > .fl-col:first-child .tap-companies-hero .tap-companies-hero__eyebrow {
  display: inline-block !important;
  margin: 0 0 1.25rem !important;
  font-family: var(--tap-font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #FD5003 !important;
}

/* 3) Companies body copy: force the same brighter home-hero look */
.tap-subpage .fl-col-group > .fl-col:first-child .tap-companies-hero .tap-companies-hero__description {
  max-width: 62ch !important;
  margin: 0 !important;
  font-family: var(--tap-font-body) !important;
  font-size: clamp(1.1rem, 2vw, 1.4rem) !important;
  line-height: 1.6 !important;
  color: rgba(255, 255, 255, 0.84) !important;
}

/* Keep the whole companies hero text context bright */
.tap-subpage .fl-col-group > .fl-col:first-child .tap-companies-hero .tap-companies-hero__content {
  color: #ffffff !important;
  opacity: 1 !important;
}
/* =============================================
   HERO ALIGNMENT — match wider/default page content
   ============================================= */

/* Leave the section bands full width */
.tap-hero,
.tap-companies-hero {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* =============================================
   HERO ALIGNMENT FIX
   Match hero content to body content width/alignment
   ============================================= */

.tap-hero__inner,
.tap-subhero__inner,
.tap-companies-hero__inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* Keep the dark hero bands full width */
.tap-hero,
.tap-subhero,
.tap-companies-hero {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Make sure the actual text blocks don't introduce their own left offset */
.tap-hero__content,
.tap-subhero__content,
.tap-companies-hero__content {
  max-width: 760px !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}
.tap-services-benefits {
  background: var(--tap-bg);
  padding: clamp(4rem, 7vw, 5.5rem) 1.5rem;
}

.tap-services-benefits__inner,
.tap-services-extra-cta__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.tap-services-benefits__panel {
  background: var(--tap-surface-2);
  border-radius: 1.75rem;
  padding: clamp(2rem, 4vw, 3rem);
}

.tap-services-benefits__title {
  margin: 0 0 2rem;
  font-family: var(--tap-font-display);
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--tap-text);
}

.tap-services-benefits__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 3rem;
  row-gap: 1.6rem;
}

.tap-services-benefits__item {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--tap-text);
}

.tap-services-benefits__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 1.15rem;
  color: var(--tap-primary-accessible);
  margin-top: 0.18rem;
}

.tap-services-benefits__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.tap-services-benefits__item a {
  color: var(--tap-primary-accessible);
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.tap-services-benefits__item a:hover,
.tap-services-benefits__item a:focus-visible {
  color: var(--tap-primary-hover);
}

/* CTA */
.tap-services-extra-cta {
  background: var(--tap-bg);
  padding: 1rem 1.5rem 4.5rem;
}

.tap-services-extra-cta__card {
  background:
    radial-gradient(ellipse at 12% 18%, rgba(253, 80, 3, 0.22) 0%, rgba(253, 80, 3, 0) 40%),
    linear-gradient(90deg, #181818 0%, #111111 100%);
  border-radius: 1.75rem;
  padding: clamp(2rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: center;
  color: #ffffff;
}

.tap-services-extra-cta__content {
  min-width: 0;
}

.tap-services-extra-cta__title {
  margin: 0 0 1rem;
  font-family: var(--tap-font-display);
  font-size: clamp(2rem, 3vw, 2.8rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #ffffff;
}

.tap-services-extra-cta__description {
  max-width: 34rem;
  margin: 0;
  font-family: var(--tap-font-body);
  font-size: clamp(1.05rem, 1.6vw, 1.2rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.92) !important;
}

.tap-services-extra-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-end;
}

.tap-services-extra-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-height: 48px;
  padding: 0.95rem 1.5rem;
  border-radius: 9999px;
  border: 2px solid transparent;
  text-decoration: none;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, transform 150ms ease;
}

.tap-services-extra-cta__button:hover {
  transform: translateY(-1px);
}

.tap-services-extra-cta__button--primary {
  background: var(--tap-primary-accessible);
  border-color: var(--tap-primary-accessible);
  color: #ffffff;
}

.tap-services-extra-cta__button--primary:hover,
.tap-services-extra-cta__button--primary:focus-visible {
  background: var(--tap-primary-hover);
  border-color: var(--tap-primary-hover);
  color: #ffffff;
}

.tap-services-extra-cta__button--secondary {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.28);
  color: #ffffff;
}

.tap-services-extra-cta__button--secondary:hover,
.tap-services-extra-cta__button--secondary:focus-visible {
  border-color: rgba(255, 255, 255, 0.6);
  color: #ffffff;
}

.tap-services-extra-cta__button:focus-visible {
  outline: 3px solid var(--tap-primary);
  outline-offset: 3px;
}

.tap-services-extra-cta__button-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 1.05rem;
}

.tap-services-extra-cta__button-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

@media (max-width: 980px) {
  .tap-services-benefits__grid {
    grid-template-columns: 1fr;
    row-gap: 1.25rem;
  }

  .tap-services-extra-cta__card {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .tap-services-extra-cta__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 768px) {
  .tap-services-benefits,
  .tap-services-extra-cta {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .tap-services-extra-cta__actions {
    flex-direction: column;
  }

  .tap-services-extra-cta__button {
    width: 100%;
    justify-content: center;
  }
}

/* Remove the unwanted light wrapper behind the two new services sections */
.tap-services-benefits,
.tap-services-extra-cta {
  background: transparent !important;
}

/* Keep only the benefits panel light */
.tap-services-benefits__panel {
  background: var(--tap-surface-2) !important;
}

/* Keep the CTA card dark and readable */
.tap-services-extra-cta__card {
  background:
    radial-gradient(ellipse at 12% 18%, rgba(253, 80, 3, 0.22) 0%, rgba(253, 80, 3, 0) 40%),
    linear-gradient(90deg, #181818 0%, #111111 100%) !important;
}

/* Force the CTA description to a high-contrast readable color */
.tap-services-extra-cta__description,
.tap-services-extra-cta__card .tap-services-extra-cta__description,
.tap-subpage .tap-services-extra-cta__description,
.tap-subpage .tap-services-extra-cta__card .tap-services-extra-cta__description {
  color: #F2F2F2 !important;
  opacity: 1 !important;
}

/* Force readable text inside the dark services CTA */
.tap-services-extra-cta__card,
.tap-services-extra-cta__card .tap-services-extra-cta__content,
.tap-services-extra-cta__card .tap-services-extra-cta__content p,
.tap-services-extra-cta__card .tap-services-extra-cta__description,
.tap-subpage .tap-services-extra-cta__card .tap-services-extra-cta__description,
.tap-subpage .tap-services-extra-cta__card p.tap-services-extra-cta__description {
  color: #F2F2F2 !important;
  opacity: 1 !important;
}

.tap-services-extra-cta__title {
  color: #FFFFFF !important;
}

.tap-services-extra-cta__description {
  color: #F2F2F2 !important;
}

/* Make the two bottom services sections span the same width as the services grid above */
.tap-services-benefits__inner,
.tap-services-extra-cta__inner {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.tap-services-benefits,
.tap-services-extra-cta {
  width: 100% !important;
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* =============================================
   WCAG 2.2 AA FIXES + BUG PATCHES  (APPEND TO END OF style-5.css)
   Added: April 2026 — DSG
   
   This block is intentionally placed LAST so it wins over every earlier
   duplicate rule via source order. It addresses:
     1. #dc1e35 parent-theme accent color leaking through on hover/focus,
        mobile menu, links, spinners, etc.   (parent Icelander theme
        defines --color_accent: #dc1e35 on :root; we override it.)
     2. About page mobile 2-column bug (columns rendered ~0px wide).
     3. Saturday/Sunday hours "closed" contrast (3.47:1 → needs 4.5:1).
     4. WordPress search input missing an accessible label.
     5. Hidden duplicate <h1> pattern (hides only visually for SR users).
     6. WCAG 2.4.7 focus visibility hardening for nav, menu toggle,
        and mobile off-canvas menu items.
   ============================================= */

/* -----------------------------------------------------------------
   1. KILL THE PARENT-THEME RED ACCENT (#dc1e35)
   Icelander's root defines --color_accent: #dc1e35 which then cascades
   into dozens of selectors (.button:hover, .menu-toggle:focus, a, mark,
   .pagination a, .infinite-loader, .highlight, etc.).  Re-mapping the
   parent CSS variable is the single source-level fix — every downstream
   rule using var(--color_accent) will now resolve to our brand orange.
   ----------------------------------------------------------------- */
:root {
  --color_accent: #C93E00;           /* was #dc1e35 — re-aliased to TAP accessible orange */
  --color_accent_text: #ffffff;      /* kept */
}

/* Defensive belt-and-suspenders: any stray hard-coded red on
   interactive parent-theme elements gets forced to TAP orange. */
.button:active,
.button:focus,
.button:hover,
.menu-toggle:hover,
.menu-toggle:focus,
.menu-toggle:focus-visible,
.main-navigation a:hover,
.main-navigation a:focus,
.main-navigation a:focus-visible,
.mobile-menu a:hover,
.mobile-menu a:focus,
#mobile-menu a:hover,
#mobile-menu a:focus,
.pagination a:hover,
.pagination a:focus {
  color: var(--tap-primary-accessible) !important;
  border-color: var(--tap-primary-accessible) !important;
}

/* Menu toggle: keep the button visible on hover but never red */
.menu-toggle:hover,
.menu-toggle:focus-visible {
  background-color: transparent !important;
  color: var(--tap-text) !important;
}

/* Hamburger icon bars (common Icelander structure) */
.menu-toggle:hover .bars span,
.menu-toggle:focus-visible .bars span,
.menu-toggle .bars span {
  background-color: var(--tap-text) !important;
}

/* Text highlight / <mark> — replace the red box-shadow highlight */
.highlight,
mark {
  background-color: var(--tap-primary-light) !important;
  box-shadow: 0.38em 0 0 var(--tap-primary-light), -0.38em 0 0 var(--tap-primary-light) !important;
  color: var(--tap-text) !important;
}

/* Loader spinner */
.infinite-loader .spinner > div > div {
  background-color: var(--tap-primary-accessible) !important;
}


/* -----------------------------------------------------------------
   2. ABOUT PAGE — MOBILE 2-COLUMN BUG
   Root cause: a later duplicate rule at line ~2239
     body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col-group {
       grid-template-columns: minmax(0, 1fr) 360px !important;
     }
   appears AFTER the @media (max-width: 999px) override and wins source
   order, so the mobile single-column rule never takes effect.
   This patch reinstates the mobile collapse at max specificity.
   ----------------------------------------------------------------- */
@media (max-width: 999px) {
  body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col-group,
  body body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col-group {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.75rem !important;
    width: 100% !important;
  }

  body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col-group > .fl-col,
  body body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col-group > .fl-col {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: 1 1 100% !important;
    float: none !important;
  }

  /* BB node-specific widths from bb-plugin/cache/*-layout.css must be
     neutralized (e.g. .fl-node-nlv9qcp32fxr { width: 54.83% }). */
  body:not(.fl-builder) .tap-subpage:not(.tap-subpage--fullwidth) .fl-col-group > .fl-col[class*="fl-node-"] {
    width: 100% !important;
  }
}


/* -----------------------------------------------------------------
   3. CONTRAST — Saturday/Sunday "Closed" rows (WCAG 1.4.3)
   --tap-text-faint (#8A8A85) on white is 3.47:1, below the 4.5:1 threshold.
   Bump to --tap-text-muted (#5A5A5A) which is 7.5:1.
   ----------------------------------------------------------------- */
.tap-hours-table .is-closed td,
.tap-info-card .tap-hours-table .is-closed td {
  color: var(--tap-text-muted) !important;
}


/* -----------------------------------------------------------------
   4. SEARCH INPUT — MISSING LABEL (WCAG 1.3.1 / 4.1.2)
   The parent theme emits <input type="search" name="s"> with no label.
   We can't add a <label> via CSS, but we can hide the widget entirely
   (it's not part of the custom TAP nav anyway). If the widget is
   intentionally kept, add a visually-hidden <label for="s"> in the
   corresponding template file.
   ----------------------------------------------------------------- */

/* Visually-hidden utility (available for future template edits) */
.tap-sr-only,
.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* If the default WP search form is still being rendered somewhere,
   keep the submit button accessible with a visible text fallback
   instead of relying on an icon. */
form[role="search"] input[type="search"]:not([aria-label]) {
  /* Forces the author to supply an aria-label — no silent failure.
     If you see a red outline around the search box in dev tools with
     the violation "Form elements must have labels", fix the template.
  */
}


/* -----------------------------------------------------------------
   5. HEADING HIERARCHY — hide the screen-reader-only duplicate <h1>
   On /, /about-us/, /services/ the page currently has TWO <h1>s:
     - a visually-hidden <h1> emitted by header.php (page title)
     - the visible hero <h1>
   WCAG 1.3.1 allows multiple H1s technically, but best practice is
   one per document. The hidden one uses .screen-reader-text or similar.
   If both remain, demote the hidden one to a landmark label instead.
   ----------------------------------------------------------------- */
/* Template-level fix recommended — see audit document. */


/* -----------------------------------------------------------------
   6. FOCUS VISIBILITY HARDENING
   Belt-and-suspenders to ensure keyboard focus is ALWAYS visible,
   even on elements the parent theme styles weirdly.
   ----------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible,
.menu-toggle:focus-visible,
.main-navigation a:focus-visible,
.tap-btn:focus-visible,
.tap-footer a:focus-visible {
  outline: 3px solid var(--tap-primary) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px rgba(253, 80, 3, 0.18) !important;
}

/* Remove the default weaker focus ring that some parent-theme rules apply */
.main-navigation a:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}


/* -----------------------------------------------------------------
   7. TARGET SIZE — WCAG 2.5.8 (minimum 24×24 CSS px)
   Nav links, footer links, hours-table links.
   ----------------------------------------------------------------- */
.tap-footer__links a,
.tap-footer a,
.tap-info-card a,
.main-navigation a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}


/* -----------------------------------------------------------------
   8. HERO HORIZONTAL PADDING ON MOBILE
   The later rules at lines ~3387-3474 of style-5.css set
     .tap-hero__inner, .tap-subhero__inner, .tap-companies-hero__inner {
       padding-left: 0 !important; padding-right: 0 !important;
     }
   This pins hero eyebrow / title text against the browser edge on
   mobile (x=0). Restore a comfortable gutter that matches the rest
   of the page (1.25rem on mobile, 1.5rem desktop).
   ----------------------------------------------------------------- */
.tap-hero__inner,
.tap-subhero__inner,
.tap-companies-hero__inner {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
  box-sizing: border-box !important;
}

@media (max-width: 600px) {
  .tap-hero__inner,
  .tap-subhero__inner,
  .tap-companies-hero__inner {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}

/* The text-content blocks inside those heros had margin-left: 0 forced
   on them (lines 3399-3403, 3468-3474). Those don't need touching since
   the inner padding now provides the gutter — but re-assert margin-left
   auto isn't needed anyway since the content block is full-width on mobile. */


/* -----------------------------------------------------------------
   9. PREFERS-REDUCED-MOTION — disable transforms + transitions
   ----------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }

  .tap-sf-card:hover,
  .tap-home-cta__button:hover {
    transform: none !important;
  }
}
.tap-about-page {
  width: 100%;
}

.tap-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 2.5rem;
  align-items: start;
}

.tap-about-main h2 {
  margin: 0 0 1.5rem;
  font-family: var(--tap-font-display);
  font-size: clamp(2.25rem, 3.2vw, 2.75rem);
  line-height: 1.08;
  color: var(--tap-text);
}

.tap-about-lead {
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--tap-text-muted);
  margin: 0 0 1.2rem;
}

.tap-about-main p {
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--tap-text-muted);
}

.tap-about-features {
  display: grid;
  gap: 1.25rem;
  margin-top: 2rem;
}

.tap-about-feature {
  position: relative;
  padding-left: 3.75rem;
  min-height: 2.5rem;
}

.tap-about-feature-icon {
  position: absolute;
  top: 0.1rem;
  left: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.65rem;
  background: var(--tap-primary-light);
  color: var(--tap-primary-accessible);
}

.tap-about-feature h3 {
  margin: 0 0 0.25rem;
  font-family: var(--tap-font-body);
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--tap-text);
}

.tap-about-feature p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--tap-text-muted);
}

.tap-about-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.tap-info-card {
  background: var(--tap-surface);
  border: 1px solid var(--tap-divider);
  border-radius: 1.25rem;
  padding: 1.5rem 1.5rem 1.6rem;
}

.tap-info-card__title {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  margin: 0 0 1rem;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--tap-text);
}

.tap-info-card__icon {
  display: inline-flex;
  width: 0.95rem;
  height: 0.95rem;
  flex: 0 0 0.95rem;
  color: var(--tap-primary-accessible);
  position: relative;
  top: 0.06em;
}

.tap-info-card__address {
  margin: 0 0 1rem;
  font-style: normal;
}

.tap-info-card p,
.tap-info-card td,
.tap-info-card a {
  font-size: 1rem;
  line-height: 1.65;
}

.tap-info-card p {
  margin: 0 0 0.25rem;
  color: var(--tap-text-muted);
}

.tap-info-card a {
  color: var(--tap-primary-accessible);
  text-decoration: none;
}

.tap-info-card a:hover,
.tap-info-card a:focus-visible {
  color: var(--tap-primary-hover);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.tap-hours-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 0.25rem;
}

.tap-hours-table td {
  padding: 0.5rem 0;
  border: 0;
  color: var(--tap-text-muted);
}

.tap-hours-table td:first-child {
  text-align: left;
  padding-right: 1rem;
}

.tap-hours-table td:last-child {
  text-align: right;
  white-space: nowrap;
  color: var(--tap-text);
}

.tap-hours-table .is-closed td {
  color: var(--tap-text-faint);
}


.tap-about-cta {
  margin-top: 3.5rem;
}

.tap-about-cta__card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2.5rem;
  align-items: center;
  background:
    radial-gradient(ellipse at 10% 20%, rgba(253, 80, 3, 0.22) 0%, rgba(253, 80, 3, 0) 42%),
    var(--tap-dark-surface);
  border-radius: 1.9rem;
  padding: 2.35rem 2rem;
  min-height: 164px;
}

/* ABOUT CTA — match about.html */
.cta-section {
  padding: 0;
  margin-top: 3rem;
}

.cta-section .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
}

.cta-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2rem;
  background:
    radial-gradient(circle at 12% 22%, rgba(253, 80, 3, 0.22) 0%, rgba(253, 80, 3, 0) 30%),
    #111111;
  border-radius: 1.75rem;
  padding: 2.25rem 2rem;
  min-height: 164px;
}

.cta-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.cta-content h2 {
  margin: 0 0 0.6rem;
  font-family: var(--tap-font-display);
  font-size: clamp(2.25rem, 3.2vw, 3rem);
  line-height: 1.02;
  color: #ffffff;
}

.cta-content p {
  margin: 0;
  font-family: var(--tap-font-body);
  font-size: 1.125rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.82);
}

.cta-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  flex-wrap: wrap;
}

.cta-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 0 1.7rem;
  border-radius: 9999px;
  font-family: var(--tap-font-body);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  border: 2px solid transparent;
  box-shadow: none;
}

.cta-actions .btn-primary {
  background: var(--tap-primary-accessible);
  border-color: var(--tap-primary-accessible);
  color: #ffffff;
}

.cta-actions .btn-primary:hover,
.cta-actions .btn-primary:focus-visible {
  background: var(--tap-primary-hover);
  border-color: var(--tap-primary-hover);
  color: #ffffff;
}

.cta-actions .btn-outline-light {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.36);
  color: #ffffff;
}

.cta-actions .btn-outline-light:hover,
.cta-actions .btn-outline-light:focus-visible {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.7);
  color: #ffffff;
}

@media (max-width: 900px) {
  .cta-card {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 2rem 1.5rem;
  }

  .cta-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .cta-actions .btn {
    width: 100%;
  }
}


.tap-footer {
  background: #171717;
  color: rgba(255, 255, 255, 0.78);
  padding: 4rem 1.5rem 1.75rem;
}

.tap-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.15fr 1fr 0.9fr 0.9fr;
  gap: 3.25rem;
  align-items: start;
}

.tap-footer__brand,
.tap-footer__column {
  min-width: 0;
  align-self: start;
}

.tap-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  padding-top: 0;
}

.tap-footer__logo-link {
  display: inline-block;
  margin: 0 0 1.75rem;
  line-height: 0;
}

.tap-footer__logo {
  width: 220px;
  max-width: 100%;
  height: auto;
  display: block;
}

.tap-footer__brand-tagline {
  margin: 0;
  max-width: 12ch;
  font-size: 1.15rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.72);
}

.tap-footer__heading {
  margin: 0 0 1.5rem;
  font-family: var(--tap-font-body);
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #ffffff;
}

.tap-footer__address {
  margin: 0;
  font-style: normal;
}

.tap-footer__address p,
.tap-footer__text {
  margin: 0 0 1rem;
  font-size: 1rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.82);
}

.tap-footer__address p:last-child,
.tap-footer__text:last-child {
  margin-bottom: 0;
}

.tap-footer a {
  color: #FD5003;
  text-decoration: none;
}

.tap-footer a:hover,
.tap-footer a:focus-visible {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.tap-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tap-footer__links li {
  margin: 0 0 1rem;
  padding: 0;
}

.tap-footer__links li:last-child {
  margin-bottom: 0;
}

.tap-footer__links a {
  display: inline-block;
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
}

.tap-footer__links a:hover,
.tap-footer__links a:focus-visible {
  color: #FD5003;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.tap-footer__bottom {
  max-width: 1200px;
  margin: 3rem auto 0;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.tap-footer__bottom p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.55);
}

@media (max-width: 1100px) {
  .tap-footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }
}

@media (max-width: 700px) {
  .tap-footer {
    padding: 3rem 1.25rem 1.25rem;
  }

  .tap-footer__inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .tap-footer__logo {
    width: 200px;
  }

  .tap-footer__brand-tagline,
  .tap-footer__address p,
  .tap-footer__text,
  .tap-footer__links a {
    font-size: 1rem;
  }
}

/* =============================================
   TAP FOOTER HARD RESET INSIDE ICELANDER WIDGET AREA
   ============================================= */

/* Kill theme footer widget spacing/layout */
.site-footer .footer-area-footer-widgets,
.site-footer .footer-widgets-inner,
.site-footer .widget-area.footer-widgets,
.site-footer .widget.widget_custom_html,
.site-footer .custom-html-widget {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

/* Remove duplicate theme copyright bar */
.site-footer .footer-area-site-info,
.site-footer .site-info-inner,
.site-footer .site-info {
  display: none !important;
}

/* Let custom footer own the whole area */
.site-footer .tap-footer {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 4.5rem 0 1.75rem !important;
  background: #171717 !important;
  color: rgba(255, 255, 255, 0.78) !important;
}

/* Grid */
.site-footer .tap-footer__inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 2.25rem !important;
  display: grid !important;
  grid-template-columns: 1.2fr 1fr 1fr 0.95fr !important;
  column-gap: 4.25rem !important;
  row-gap: 2rem !important;
  align-items: start !important;
}

/* Brand column */
.site-footer .tap-footer__brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 1.5rem !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-footer .tap-footer__logo-link {
  display: inline-block !important;
  margin: 0 !important;
  line-height: 0 !important;
}

.site-footer .tap-footer__logo {
  display: block !important;
  width: 220px !important;
  max-width: 100% !important;
  height: auto !important;
}

.site-footer .tap-footer__brand-tagline {
  margin: 0 !important;
  max-width: 10ch !important;
  font-size: 1rem !important;
  line-height: 1.55 !important;
  color: rgba(255, 255, 255, 0.74) !important;
}

/* Shared column styling */
.site-footer .tap-footer__column {
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
  align-self: start !important;
}

.site-footer .tap-footer__heading {
  display: block !important;
  margin: 0 0 1.35rem !important;
  padding: 0 !important;
  font-family: var(--tap-font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
}

/* Contact column */
.site-footer .tap-footer__address {
  margin: 0 !important;
  padding: 0 !important;
  font-style: normal !important;
}

.site-footer .tap-footer__address p {
  margin: 0 0 1.15rem !important;
  padding: 0 !important;
  font-size: 0.99rem !important;
  line-height: 1.45 !important;
  color: rgba(255, 255, 255, 0.82) !important;
}

.site-footer .tap-footer__address p:last-child {
  margin-bottom: 0 !important;
}

/* Hours column */
.site-footer .tap-footer__text {
  margin: 0 0 1.15rem !important;
  padding: 0 !important;
  font-size: 0.99rem !important;
  line-height: 1.45 !important;
  color: rgba(255, 255, 255, 0.82) !important;
}

.site-footer .tap-footer__text:last-child {
  margin-bottom: 0 !important;
}

/* Quick links */
.site-footer .tap-footer__links {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-footer .tap-footer__links li {
  list-style: none !important;
  margin: 0 0 1.15rem !important;
  padding: 0 !important;
}

.site-footer .tap-footer__links li:last-child {
  margin-bottom: 0 !important;
}

.site-footer .tap-footer__links a {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0.99rem !important;
  line-height: 1.45 !important;
  color: rgba(255, 255, 255, 0.88) !important;
  text-decoration: underline !important;
  text-underline-offset: 0.16em !important;
}

.site-footer .tap-footer__links a:hover,
.site-footer .tap-footer__links a:focus-visible {
  color: #FD5003 !important;
}

/* Footer links in contact column */
.site-footer .tap-footer a {
  color: #FD5003 !important;
  text-decoration: none !important;
}

.site-footer .tap-footer__address a:hover,
.site-footer .tap-footer__address a:focus-visible {
  color: #ffffff !important;
  text-decoration: underline !important;
  text-underline-offset: 0.16em !important;
}

/* Bottom copyright line */
.site-footer .tap-footer__bottom {
  max-width: 1200px !important;
  margin: 3rem auto 0 !important;
  padding: 1.4rem 2.25rem 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
}

.site-footer .tap-footer__bottom p {
  margin: 0 !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
  color: rgba(255, 255, 255, 0.55) !important;
}

/* Responsive */
@media (max-width: 1100px) {
  .site-footer .tap-footer__inner {
    grid-template-columns: 1fr 1fr !important;
    column-gap: 2.5rem !important;
    row-gap: 2.25rem !important;
  }
}

@media (max-width: 700px) {
  .site-footer .tap-footer {
    padding: 3rem 0 1.25rem !important;
  }

  .site-footer .tap-footer__inner {
    grid-template-columns: 1fr !important;
    padding: 0 1.25rem !important;
    row-gap: 2rem !important;
  }

  .site-footer .tap-footer__bottom {
    padding: 1.25rem 1.25rem 0 !important;
  }

  .site-footer .tap-footer__logo {
    width: 200px !important;
  }
}

/* =============================================
   TAP FOOTER FINAL FIX
   ============================================= */

:root {
  --tap-footer-bg: #171717;
  --tap-footer-text: #c9c9c9;
  --tap-footer-muted: #adadad;
  --tap-footer-heading: #ffffff;
  --tap-footer-link: #ff6a24;
  --tap-footer-link-hover: #ffffff;

  /* Adjust this only if the current logo file still sits too high/low. */
  --tap-footer-logo-offset-y: -76px;
}

/* Remove spacing/layout added by the theme's footer widget wrappers */
.site-footer .footer-area-footer-widgets,
.site-footer .footer-widgets-inner,
.site-footer #footer-widgets,
.site-footer .widget-area.footer-widgets,
.site-footer .widget_custom_html,
.site-footer .widget_custom_html .textwidget,
.site-footer .custom-html-widget {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Hide the parent theme footer credit area */
.footer-area-site-info,
.site-info,
.site-footer .site-info {
  display: none !important;
}

.site-footer {
  background: var(--tap-footer-bg) !important;
  color: var(--tap-footer-text) !important;
}

.tap-footer,
.tap-footer * {
  box-sizing: border-box;
}

.tap-footer {
  width: 100%;
  background: var(--tap-footer-bg);
  color: var(--tap-footer-text);
  padding: clamp(3.25rem, 6vw, 4.5rem) 1.5rem 1.75rem;
}

.tap-footer__inner,
.tap-footer__bottom {
  width: 100%;
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.tap-footer__inner {
  display: grid;
  grid-template-columns:
    minmax(220px, 1.15fr)
    minmax(210px, 1fr)
    minmax(230px, 0.95fr)
    minmax(170px, 0.8fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.tap-footer__brand,
.tap-footer__column {
  min-width: 0;
  padding: 0;
  margin: 0;
}

/* Logo crop workaround:
   The screenshot makes the logo file look like it has a large transparent canvas.
   Best long-term fix: upload a tightly cropped logo and remove this crop wrapper. */
.tap-footer__logo-link {
  display: inline-block;
  width: 230px;
  max-width: 100%;
  margin: 0 0 1rem;
  line-height: 0;
  text-decoration: none !important;
}

.tap-footer__logo-crop {
  display: block;
  width: 230px;
  max-width: 100%;
  height: 76px;
  overflow: hidden;
  position: relative;
}

.tap-footer__logo {
  display: block;
  width: 230px;
  max-width: none;
  height: 230px;
  object-fit: contain;
  transform: translateY(var(--tap-footer-logo-offset-y));
}

.tap-footer__brand-tagline {
  margin: 0;
  max-width: 17ch;
  font-family: var(--tap-font-body) !important;
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--tap-footer-text);
}

.tap-footer__heading {
  margin: 0 0 1.25rem !important;
  padding: 0 !important;
  font-family: var(--tap-font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--tap-footer-heading) !important;
}

.tap-footer__address {
  margin: 0;
  font-style: normal;
}

.tap-footer__address p,
.tap-footer__text {
  margin: 0 0 0.95rem !important;
  font-family: var(--tap-font-body) !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
  color: var(--tap-footer-text) !important;
}

.tap-footer__address p:last-child,
.tap-footer__text:last-child {
  margin-bottom: 0 !important;
}

.site-footer .tap-footer a {
  color: var(--tap-footer-link) !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.site-footer .tap-footer a:hover,
.site-footer .tap-footer a:focus-visible {
  color: var(--tap-footer-link-hover) !important;
}

.tap-footer__links {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.tap-footer__links li {
  margin: 0 0 0.75rem !important;
  padding: 0 !important;
}

.tap-footer__links a,
.tap-footer__address a {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  line-height: 1.4;
}

.tap-footer a:focus-visible {
  outline: 3px solid var(--tap-footer-link) !important;
  outline-offset: 4px !important;
  border-radius: 0.25rem;
}

.tap-footer__bottom {
  margin-top: clamp(2.5rem, 5vw, 3.5rem) !important;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.tap-footer__bottom p {
  margin: 0 !important;
  font-family: var(--tap-font-body) !important;
  font-size: 0.95rem !important;
  line-height: 1.5 !important;
  color: var(--tap-footer-muted) !important;
}

@media (max-width: 1050px) {
  .tap-footer__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.25rem 3rem;
  }
}

@media (max-width: 650px) {
  .tap-footer {
    padding: 3rem 1.25rem 1.5rem;
  }

  .tap-footer__inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .tap-footer__logo-link,
  .tap-footer__logo-crop {
    width: 210px;
  }

  .tap-footer__logo-crop {
    height: 70px;
  }

  .tap-footer__logo {
    width: 210px;
    height: 210px;
    transform: translateY(-69px);
  }

  .tap-footer__brand-tagline {
    max-width: 22ch;
  }
}
/* =============================================
   ABOUT PAGE CTA TEXT CONTRAST FIX
   ============================================= */

body.page-id-7 .cta-section .cta-card .cta-content p {
  color: rgba(255, 255, 255, 0.76) !important;
}

body.page-id-7 .cta-section .cta-card .cta-content h2 {
  color: #ffffff !important;
}

body.page-id-7 .cta-section .cta-card .btn-outline-light {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.55) !important;
}

body.page-id-7 .cta-section .cta-card .btn-outline-light:hover,
body.page-id-7 .cta-section .cta-card .btn-outline-light:focus-visible {
  color: #111111 !important;
  background: #ffffff !important;
  border-color: #ffffff !important;
}