/*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */
@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.5rem;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --default-font-family: var(--font-sans);
    --default-font-feature-settings: var(--font-sans--font-feature-settings);
    --default-font-variation-settings: var(--font-sans--font-variation-settings);
    --default-mono-font-family: var(--font-mono);
    --default-mono-font-feature-settings: var(--font-mono--font-feature-settings);
    --default-mono-font-variation-settings: var(--font-mono--font-variation-settings);
  }
}

@layer base {
  *, :after, :before, ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  body {
    line-height: inherit;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

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

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

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

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

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

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

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

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

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

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
    color: currentColor;
  }

  @supports (color: color-mix(in lab, red, red)) {
    ::placeholder {
      color: color-mix(in oklab, currentColor 50%, transparent);
    }
  }

  textarea {
    resize: vertical;
  }

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

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }

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

  button, input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

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

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

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }

  * {
    border-color: var(--border);
    outline-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    * {
      outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  body {
    background-color: var(--background);
    color: var(--foreground);
  }

  * {
    border-color: var(--border);
    outline-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    * {
      outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  html {
    max-width: 100vw;
    overflow-x: hidden;
  }

  body {
    background-color: var(--background);
    color: var(--foreground);
    cursor: default;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    max-width: 100vw;
    position: relative;
    overflow-x: hidden;
  }

  .custom-cursor {
    cursor: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"><circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"%2300cc00\" opacity=\"0.3\"/><circle cx=\"10\" cy=\"10\" r=\"3\" fill=\"%23006400\"/></svg>"), auto;
  }

  @media (hover: none) and (pointer: coarse) {
    .custom-cursor {
      cursor: default;
    }
  }

  .glass {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    background: #ffffff1a;
    border: 1px solid #fff3;
  }

  .glass-dark {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    background: #0000001a;
    border: 1px solid #0003;
  }

  html {
    scroll-behavior: smooth;
  }

  @media (width <= 768px) {
    html {
      scroll-behavior: auto;
      -webkit-overflow-scrolling: touch;
      touch-action: pan-y;
    }

    body {
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: none;
      will-change: auto;
      touch-action: pan-y;
    }

    * {
      touch-action: manipulation;
      -webkit-user-select: none;
      user-select: none;
    }

    p, h1, h2, h3, h4, h5, h6, span, div[class*="text"] {
      -webkit-user-select: text;
      user-select: text;
    }
  }

  @media (width <= 640px) {
    img {
      image-rendering: -webkit-optimize-contrast;
      image-rendering: crisp-edges;
    }
  }

  .touch-manipulation {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  @media (width <= 400px) {
    header img {
      max-height: 1.25rem !important;
    }

    img[alt*="VAC Tires"] {
      max-width: 80px !important;
      max-height: 1.5rem !important;
    }

    .glass img[alt*="VAC Tires"] {
      max-width: 70px !important;
      max-height: 1.5rem !important;
    }

    nav .flex {
      padding-top: .5rem !important;
      padding-bottom: .5rem !important;
    }

    main {
      padding-top: 5rem !important;
    }

    .banner-item {
      padding: .375rem .5rem !important;
    }

    .banner-item span {
      font-size: .6875rem !important;
    }

    .banner-item svg {
      width: .875rem !important;
      height: .875rem !important;
    }
  }

  @media (width <= 768px) {
    html, body {
      width: 100vw !important;
      max-width: 100vw !important;
      overflow-x: hidden !important;
    }

    * {
      backface-visibility: hidden;
      transform: translateZ(0);
    }

    .animate-glow, .animate-float, .animate-pulse {
      animation-play-state: running;
      animation-duration: .5s !important;
    }

    [data-framer-motion] {
      will-change: auto !important;
    }

    @media (hover: none) and (pointer: coarse) {
      .animate-glow {
        animation: none !important;
        box-shadow: 0 0 15px #00cc004d !important;
      }

      .animate-float {
        animation: none !important;
        transform: none !important;
      }
    }

    section[class*="hero"] {
      width: 100% !important;
      min-height: 100vh !important;
      position: relative !important;
      overflow: hidden !important;
    }

    section[class*="hero"] img {
      contain: layout style paint;
      transform: translate3d(0, 0, 0);
      will-change: auto !important;
      backface-visibility: hidden !important;
      transform: translateZ(0) !important;
    }

    section[class*="hero"] div[class*="absolute w-2 h-2"] {
      display: none !important;
    }

    .hero-background-mobile {
      contain: layout style paint;
      transform: translate3d(0, 0, 0)scale(1.02);
      image-rendering: auto !important;
    }

    section[class*="hero"] > div.absolute.inset-0.z-0 {
      z-index: 0 !important;
      width: 100% !important;
      height: 100% !important;
      min-height: 100vh !important;
      position: absolute !important;
      top: 0 !important;
      left: 0 !important;
      overflow: hidden !important;
    }

    .service-image-mobile {
      object-fit: cover !important;
      aspect-ratio: 16 / 9 !important;
      border-radius: 1rem 1rem 0 0 !important;
      width: 100% !important;
      height: 100% !important;
      min-height: 160px !important;
      max-height: 200px !important;
    }

    .relative.h-40.sm\\:h-48.lg\\:h-52 {
      aspect-ratio: 16 / 9 !important;
      height: 160px !important;
    }

    @media (width <= 768px) {
      section[class*="hero"] div[style*="backgroundImage"] {
        opacity: .75 !important;
        transform-origin: center !important;
        filter: brightness(1.25) contrast(1.15) saturate(1.1) !important;
        background-position: 50% 25% !important;
        background-repeat: no-repeat !important;
        background-size: cover !important;
        background-attachment: scroll !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 100vh !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        transform: scale(1) !important;
      }

      .service-image-mobile {
        object-fit: cover !important;
        object-position: center center !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 150px !important;
        max-height: 180px !important;
      }
    }

    @media (width <= 480px) {
      section[class*="hero"] div[style*="backgroundImage"] {
        opacity: .7 !important;
        filter: brightness(1.3) contrast(1.2) saturate(1.15) !important;
        background-position: 50% 20% !important;
        background-size: cover !important;
        transform: scale(1) !important;
      }

      .service-image-mobile {
        filter: brightness(1.15) contrast(1.08) saturate(1.15) !important;
        min-height: 140px !important;
        max-height: 160px !important;
      }
    }

    img[alt*="VAC Tires"] {
      width: auto !important;
      max-width: 120px !important;
      height: auto !important;
      max-height: 2rem !important;
    }

    .pt-28 {
      padding-top: 8rem !important;
    }

    @media (width <= 480px) {
      .pt-28 {
        padding-top: 9rem !important;
      }
    }

    .glass img[alt*="VAC Tires"] {
      max-width: 100px !important;
      max-height: 2rem !important;
    }

    #root, header {
      width: 100vw !important;
      max-width: 100vw !important;
      overflow-x: hidden !important;
    }

    .max-w-7xl {
      max-width: 100vw !important;
      padding-left: 1rem !important;
      padding-right: 1rem !important;
      overflow-x: hidden !important;
    }

    nav .max-w-7xl {
      padding-left: .75rem !important;
      padding-right: .75rem !important;
    }

    section {
      max-width: 100vw !important;
      overflow-x: hidden !important;
    }

    .flex {
      min-width: 0 !important;
    }

    .flex.justify-between {
      width: 100% !important;
      min-width: 0 !important;
    }

    .hero-mobile-spacing {
      padding-top: 6rem !important;
      padding-bottom: 3rem !important;
    }

    .animated-banner {
      max-width: 100vw !important;
      overflow-x: hidden !important;
    }

    .animated-banner .flex {
      min-width: max-content !important;
    }

    .banner-item {
      white-space: nowrap !important;
      flex-shrink: 0 !important;
    }

    .animated-banner [data-framer-motion] {
      backface-visibility: hidden !important;
      animation-fill-mode: forwards !important;
      transform: translateZ(0) !important;
    }

    h1, h2, h3 {
      line-height: 1.2 !important;
    }

    p {
      line-height: 1.6 !important;
    }

    img {
      image-rendering: auto !important;
      backface-visibility: hidden !important;
      transform: translateZ(0) !important;
    }

    .glass img {
      object-fit: cover !important;
      width: 100% !important;
      height: 100% !important;
    }

    .service-image-mobile {
      image-rendering: auto !important;
      contain: layout style paint !important;
      will-change: auto !important;
    }

    @media (width <= 768px) {
      section[class*="hero"] div[style*="backgroundImage"] {
        will-change: auto !important;
        backface-visibility: hidden !important;
        contain: layout style paint !important;
        image-rendering: auto !important;
        visibility: visible !important;
        display: block !important;
      }

      section[class*="hero"] {
        contain: layout !important;
        width: 100% !important;
        min-height: 100vh !important;
        position: relative !important;
        overflow: hidden !important;
      }

      section[class*="hero"] > div.absolute.inset-0.z-0 {
        z-index: 0 !important;
        visibility: visible !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 100vh !important;
        display: block !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        overflow: hidden !important;
      }
    }

    .mobile-cta-spacing {
      margin-top: 2rem !important;
      margin-bottom: 2rem !important;
    }

    .md\:hidden {
      flex-shrink: 0 !important;
    }

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

    .container {
      max-width: 100vw !important;
      padding-left: 1rem !important;
      padding-right: 1rem !important;
    }
  }

  @media (width <= 768px) and (height >= 700px) {
    .max-md\:right-8 {
      right: max(2.5rem, env(safe-area-inset-right, 2.5rem)) !important;
    }

    .hero-content {
      padding-top: 8rem !important;
    }
  }

  @supports (-webkit-touch-callout: none) {
    .min-h-screen {
      min-height: -webkit-fill-available;
    }
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) h1 {
    font-size: var(--text-2xl);
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) h2 {
    font-size: var(--text-xl);
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) h3 {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) h4 {
    font-size: var(--text-base);
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) p {
    font-size: var(--text-base);
    font-weight: var(--font-weight-normal);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) label, :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) button {
    font-size: var(--text-base);
    font-weight: var(--font-weight-medium);
    line-height: 1.5;
  }

  :where(:not(:has([class*=" text-"]), :not(:has([class^="text-"])))) input {
    font-size: var(--text-base);
    font-weight: var(--font-weight-normal);
    line-height: 1.5;
  }
}

@layer utilities;

:root {
  --font-size: 14px;
  --background: #fff;
  --foreground: oklch(.145 0 0);
  --card: #fff;
  --card-foreground: oklch(.145 0 0);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(.145 0 0);
  --primary: #006400;
  --primary-foreground: oklch(1 0 0);
  --secondary: oklch(.95 .0058 264.53);
  --secondary-foreground: #030213;
  --muted: #ececf0;
  --muted-foreground: #717182;
  --accent: #0c0;
  --accent-foreground: #000;
  --destructive: #d4183d;
  --destructive-foreground: #fff;
  --border: #0000001a;
  --input: transparent;
  --input-background: #f3f3f5;
  --switch-background: #cbced4;
  --font-weight-medium: 500;
  --font-weight-normal: 400;
  --ring: oklch(.708 0 0);
  --chart-1: oklch(.646 .222 41.116);
  --chart-2: oklch(.6 .118 184.704);
  --chart-3: oklch(.398 .07 227.392);
  --chart-4: oklch(.828 .189 84.429);
  --chart-5: oklch(.769 .188 70.08);
  --radius: .625rem;
  --sidebar: oklch(.985 0 0);
  --sidebar-foreground: oklch(.145 0 0);
  --sidebar-primary: #030213;
  --sidebar-primary-foreground: oklch(.985 0 0);
  --sidebar-accent: oklch(.97 0 0);
  --sidebar-accent-foreground: oklch(.205 0 0);
  --sidebar-border: oklch(.922 0 0);
  --sidebar-ring: oklch(.708 0 0);
  --vac-green: #006400;
  --vac-accent: #0c0;
  --vac-black: #000;
  --vac-dark-green: #004d00;
}

.dark {
  --background: oklch(.145 0 0);
  --foreground: oklch(.985 0 0);
  --card: oklch(.145 0 0);
  --card-foreground: oklch(.985 0 0);
  --popover: oklch(.145 0 0);
  --popover-foreground: oklch(.985 0 0);
  --primary: #0c0;
  --primary-foreground: oklch(.205 0 0);
  --secondary: oklch(.269 0 0);
  --secondary-foreground: oklch(.985 0 0);
  --muted: oklch(.269 0 0);
  --muted-foreground: oklch(.708 0 0);
  --accent: #006400;
  --accent-foreground: oklch(.985 0 0);
  --destructive: oklch(.396 .141 25.723);
  --destructive-foreground: oklch(.637 .237 25.331);
  --border: oklch(.269 0 0);
  --input: oklch(.269 0 0);
  --ring: oklch(.439 0 0);
  --font-weight-medium: 500;
  --font-weight-normal: 400;
  --chart-1: oklch(.488 .243 264.376);
  --chart-2: oklch(.696 .17 162.48);
  --chart-3: oklch(.769 .188 70.08);
  --chart-4: oklch(.627 .265 303.9);
  --chart-5: oklch(.645 .246 16.439);
  --sidebar: oklch(.205 0 0);
  --sidebar-foreground: oklch(.985 0 0);
  --sidebar-primary: oklch(.488 .243 264.376);
  --sidebar-primary-foreground: oklch(.985 0 0);
  --sidebar-accent: oklch(.269 0 0);
  --sidebar-accent-foreground: oklch(.985 0 0);
  --sidebar-border: oklch(.269 0 0);
  --sidebar-ring: oklch(.439 0 0);
}

html {
  font-size: var(--font-size);
}

.star-rating {
  align-items: center;
  gap: 2px;
  display: flex;
}

.star-rating svg {
  flex-shrink: 0;
  visibility: visible !important;
  opacity: 1 !important;
  display: block !important;
}

.star-rating .star-partial {
  display: inline-block;
  position: relative;
}

.star-rating .star-partial .star-overlay {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
}

svg[data-lucide="star"] {
  visibility: visible !important;
  min-width: 16px !important;
  min-height: 16px !important;
  display: block !important;
}

.text-yellow-400.fill-yellow-400 {
  color: #fbbf24 !important;
  fill: #fbbf24 !important;
}

.text-gray-300.fill-gray-300 {
  color: #d1d5db !important;
  fill: #d1d5db !important;
}

@media (width <= 768px) {
  .star-rating {
    gap: 1px !important;
  }

  .star-rating svg {
    width: 12px !important;
    min-width: 12px !important;
    height: 12px !important;
    min-height: 12px !important;
  }

  section[class*="hero"] .star-rating svg {
    width: 14px !important;
    min-width: 14px !important;
    height: 14px !important;
    min-height: 14px !important;
  }

  .glass .star-rating svg {
    width: 10px !important;
    min-width: 10px !important;
    height: 10px !important;
    min-height: 10px !important;
  }

  #reviews .star-rating svg {
    width: 16px !important;
    min-width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
  }

  #reviews .glass .star-rating svg {
    width: 14px !important;
    min-width: 14px !important;
    height: 14px !important;
    min-height: 14px !important;
  }

  footer .star-rating svg {
    width: 12px !important;
    min-width: 12px !important;
    height: 12px !important;
    min-height: 12px !important;
  }

  svg[data-lucide="star"] {
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
  }

  .star-rating {
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
  }

  .star-rating svg, .star-rating .star-partial svg, .star-rating .star-overlay svg {
    visibility: visible !important;
    opacity: 1 !important;
    flex-shrink: 0 !important;
    display: block !important;
  }

  .grid.grid-cols-1.sm\\:grid-cols-2.lg\\:grid-cols-3 {
    gap: 1.5rem !important;
  }

  .service-image-mobile {
    aspect-ratio: 16 / 9 !important;
    object-fit: cover !important;
    object-position: center center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 140px !important;
    max-height: 180px !important;
  }

  .relative.h-40 {
    height: 140px !important;
  }

  .sm\\:h-48 {
    height: 160px !important;
  }

  .lg\\:h-52 {
    height: 140px !important;
  }

  .text-center.text-white.relative.px-4.z-30 {
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 30 !important;
    display: block !important;
    position: relative !important;
  }

  h2:has(span[role="text"]) {
    visibility: visible !important;
    opacity: 1 !important;
    text-align: center !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 3rem !important;
    display: flex !important;
  }

  span[role="text"] {
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 50 !important;
    text-align: center !important;
    width: 100% !important;
    min-height: 2rem !important;
    display: inline-block !important;
    position: relative !important;
  }

  span[role="text"] span {
    visibility: visible !important;
    opacity: 1 !important;
    text-align: center !important;
    word-wrap: break-word !important;
    -webkit-hyphens: auto !important;
    hyphens: auto !important;
    width: 100% !important;
    display: inline-block !important;
  }

  span[role="text"] .text-green-400 {
    visibility: visible !important;
    display: inline !important;
  }

  .mt-16.sm\\:mt-20 {
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
  }

  section .mt-16.sm\\:mt-20 {
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
  }

  section > div > div:last-child {
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
  }

  section[class*="hero"] div[class*="mt-16"] {
    visibility: visible !important;
    opacity: 1 !important;
    margin-top: 2rem !important;
    display: block !important;
  }
}

@media (width <= 400px) {
  span[role="text"] {
    min-height: 1.5rem !important;
    font-size: 1.25rem !important;
    line-height: 1.3 !important;
  }

  h2:has(span[role="text"]) {
    min-height: 2.5rem !important;
    font-size: 1.25rem !important;
  }
}

span[role="text"] {
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 999 !important;
  display: inline-block !important;
  position: relative !important;
}

span[role="text"] * {
  visibility: visible !important;
  opacity: 1 !important;
  display: inline-block !important;
}

@media screen {
  div:has( > div > h2 > div > span[role="text"]) {
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 25 !important;
    display: block !important;
    position: relative !important;
  }

  h2:has(div > span[role="text"]) {
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 30 !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 3rem !important;
    display: flex !important;
    position: relative !important;
  }

  div:has( > span[role="text"]) {
    visibility: visible !important;
    opacity: 1 !important;
    text-align: center !important;
    z-index: 35 !important;
    width: 100% !important;
    display: block !important;
    position: relative !important;
  }
}

@media (width <= 400px) {
  .star-rating {
    gap: .5px !important;
  }

  .star-rating svg {
    width: 10px !important;
    min-width: 10px !important;
    height: 10px !important;
    min-height: 10px !important;
  }

  section[class*="hero"] .star-rating svg {
    width: 12px !important;
    min-width: 12px !important;
    height: 12px !important;
    min-height: 12px !important;
  }

  .glass .star-rating svg {
    width: 8px !important;
    min-width: 8px !important;
    height: 8px !important;
    min-height: 8px !important;
  }
}

.floating-buttons-container {
  z-index: 40;
  flex-direction: column;
  gap: .75rem;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  display: flex !important;
  position: fixed !important;
}

@media (width >= 769px) {
  .floating-buttons-container {
    top: 50% !important;
    transform: translateY(-50%) !important;
  }
}

.floating-button {
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 56px;
  height: 56px;
  text-decoration: none;
  transition: all .3s;
  box-shadow: 0 4px 12px #00000026;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: transparent !important;
  display: flex !important;
}

.floating-button-call {
  color: #fff;
  background: linear-gradient(135deg, #059669, #10b981);
}

.floating-button-call:hover {
  background: linear-gradient(135deg, #047857, #059669);
  box-shadow: 0 6px 20px #05966966;
}

.floating-button-directions {
  color: #fff;
  background: linear-gradient(135deg, #006400, #0c0);
}

.floating-button-directions:hover {
  background: linear-gradient(135deg, #004d00, #006400);
  box-shadow: 0 6px 20px #00640066;
}

.floating-button-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
}

@media (width <= 768px) {
  .floating-buttons-container {
    gap: .5rem;
    z-index: 40 !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    will-change: auto !important;
    backface-visibility: hidden !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    position: fixed !important;
    top: 65% !important;
    bottom: auto !important;
    right: .75rem !important;
    transform: translateY(-50%)translateZ(0) !important;
  }

  .floating-button {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
    -webkit-user-select: none !important;
    user-select: none !important;
    -webkit-touch-callout: none !important;
    width: 48px !important;
    height: 48px !important;
    display: flex !important;
  }

  .floating-button-icon {
    flex-shrink: 0;
    pointer-events: none !important;
    width: 20px !important;
    height: 20px !important;
  }

  body.is-scrolling .floating-buttons-container {
    opacity: .8 !important;
    will-change: auto !important;
    transform: translateY(-50%)translateZ(0) !important;
  }

  body.is-scrolling .floating-button {
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}

@media (width <= 480px) {
  .floating-buttons-container {
    gap: .375rem;
    top: 60% !important;
    bottom: auto !important;
    right: .5rem !important;
    transform: translateY(-50%) !important;
  }

  .floating-button {
    width: 44px !important;
    height: 44px !important;
  }

  .floating-button-icon {
    width: 18px !important;
    height: 18px !important;
  }
}

@media (width <= 400px) {
  .floating-buttons-container {
    top: 55% !important;
    bottom: auto !important;
    right: .5rem !important;
    transform: translateY(-50%) !important;
  }

  .floating-button {
    width: 44px !important;
    height: 44px !important;
  }

  .floating-button-icon {
    width: 16px !important;
    height: 16px !important;
  }
}

@supports (padding: max(0px)) {
  .floating-buttons-container {
    right: max(1rem, env(safe-area-inset-right, 1rem));
  }

  @media (width <= 768px) {
    .floating-buttons-container {
      right: max(.75rem, env(safe-area-inset-right, .75rem)) !important;
      top: 65% !important;
      transform: translateY(-50%) !important;
    }
  }

  @media (width <= 480px) {
    .floating-buttons-container {
      right: max(.5rem, env(safe-area-inset-right, .5rem)) !important;
      top: 60% !important;
      transform: translateY(-50%) !important;
    }
  }

  @media (width <= 400px) {
    .floating-buttons-container {
      top: 55% !important;
      transform: translateY(-50%) !important;
    }
  }
}

@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-10px);
  }
}

@keyframes glow {
  0%, 100% {
    box-shadow: 0 0 20px #00cc004d;
  }

  50% {
    box-shadow: 0 0 30px #0c09;
  }
}

@keyframes continuousScroll {
  0% {
    transform: translate3d(0, 0, 0);
  }

  100% {
    transform: translate3d(-50%, 0, 0);
  }
}

.animate-float {
  animation: 3s ease-in-out infinite float;
}

.animate-glow {
  animation: 2s ease-in-out infinite glow;
}

.animate-continuous-scroll {
  backface-visibility: hidden;
  will-change: transform;
  animation: 25s linear infinite forwards continuousScroll;
  transform: translateZ(0);
}

@media (prefers-reduced-motion: reduce) {
  .animate-float, .animate-glow {
    animation: none;
  }

  * {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media (width <= 768px) {
  body.is-scrolling .animate-glow, body.is-scrolling .animate-float, body.is-scrolling .animate-pulse {
    animation-play-state: paused !important;
  }

  body.is-scrolling [data-framer-motion] {
    will-change: auto !important;
    transform: none !important;
  }

  body.is-scrolling .glass {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    background: #ffffff26 !important;
  }

  .motion-reduce-mobile {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }

  body.is-scrolling span[role="text"], body.is-scrolling span[role="text"] span {
    visibility: visible !important;
    opacity: 1 !important;
    display: inline-block !important;
    transform: none !important;
  }

  body.is-scrolling .text-center.text-white.relative.px-4 {
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
  }
}

.blog-content {
  color: #374151;
  overflow-wrap: break-word;
  word-wrap: break-word;
  max-width: 100%;
  font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;
  line-height: 1.8;
}

.blog-heading {
  color: #1f2937 !important;
  clear: both !important;
  letter-spacing: -.025em !important;
  width: 100% !important;
  margin: 3rem 0 1.5rem !important;
  font-size: 2rem !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  display: block !important;
  position: relative !important;
}

.blog-heading:first-of-type {
  margin-top: 1rem !important;
}

.blog-paragraph {
  color: #4b5563 !important;
  text-align: left !important;
  clear: both !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  letter-spacing: .01em !important;
  width: 100% !important;
  margin-bottom: 2rem !important;
  font-size: 1.125rem !important;
  font-weight: 400 !important;
  line-height: 1.8 !important;
  display: block !important;
}

.blog-content > * {
  margin-bottom: 1.5rem !important;
}

.blog-content > :last-child {
  margin-bottom: 0 !important;
}

.blog-paragraph p {
  color: #4b5563 !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  letter-spacing: .01em !important;
  margin-bottom: 1rem !important;
  font-size: 1.125rem !important;
  font-weight: 400 !important;
  line-height: 1.8 !important;
}

.blog-paragraph p:last-child {
  margin-bottom: 0 !important;
}

.blog-content ul {
  margin: 2rem 0 !important;
  padding-left: 0 !important;
  list-style: none !important;
}

.blog-content ul li {
  color: #4b5563 !important;
  align-items: flex-start !important;
  gap: .75rem !important;
  margin-bottom: 1rem !important;
  font-size: 1.125rem !important;
  line-height: 1.7 !important;
  display: flex !important;
}

.blog-content ul li:last-child {
  margin-bottom: 0 !important;
}

.blog-content ul li:before {
  content: none !important;
}

.blog-content ul li .w-2.h-2 {
  flex-shrink: 0 !important;
  margin-top: .375rem !important;
}

.blog-content > .blog-paragraph:first-of-type p:first-of-type:first-letter, .blog-content > p:first-of-type:first-letter {
  float: left;
  color: #059669;
  padding-top: .25rem;
  padding-right: .5rem;
  font-size: 4rem;
  font-weight: 700;
  line-height: 3.5rem;
}

.blog-content blockquote {
  color: #6b7280 !important;
  background: #f0fdf4 !important;
  border-left: 4px solid #10b981 !important;
  border-radius: .5rem !important;
  margin: 2rem 0 !important;
  padding: 1.5rem !important;
  font-style: italic !important;
  position: relative !important;
}

.blog-content blockquote:before {
  content: "\"";
  color: #10b981;
  font-size: 3rem;
  font-weight: 700;
  position: absolute;
  top: -.5rem;
  left: 1rem;
}

.blog-content ul, .blog-content ol {
  margin: 1.5rem 0 !important;
  padding-left: 1.5rem !important;
}

.blog-content li {
  color: #4b5563 !important;
  margin-bottom: .75rem !important;
  line-height: 1.7 !important;
}

.blog-content li::marker {
  color: #10b981 !important;
  font-weight: 600 !important;
}

.blog-content code {
  color: #1f2937 !important;
  background: #f3f4f6 !important;
  border-radius: .375rem !important;
  padding: .25rem .5rem !important;
  font-family: JetBrains Mono, Fira Code, monospace !important;
  font-size: .875rem !important;
}

.blog-content a {
  color: #059669 !important;
  border-bottom: 1px solid #0596694d !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  transition: all .2s !important;
}

.blog-content a:hover {
  color: #047857 !important;
  background: #0596690d !important;
  border-bottom-color: #047857 !important;
  border-radius: .25rem !important;
  padding: .125rem .25rem !important;
}

.blog-content strong, .blog-content b {
  color: #1f2937 !important;
  font-weight: 700 !important;
}

.blog-content em, .blog-content i {
  color: #6b7280 !important;
  font-style: italic !important;
}

.blog-content img, .blog-content .blog-image {
  clear: both !important;
  float: none !important;
  border-radius: .5rem !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 2rem 0 !important;
  display: block !important;
  position: static !important;
  box-shadow: 0 4px 6px -1px #0000001a !important;
}

.blog-content * {
  box-sizing: border-box !important;
  max-width: 100% !important;
}

.blog-content p, .blog-content h1, .blog-content h2, .blog-content h3, .blog-content h4, .blog-content h5, .blog-content h6 {
  float: none !important;
  clear: both !important;
  width: 100% !important;
  display: block !important;
  position: static !important;
}

@media (width <= 768px) {
  .blog-content {
    font-size: 1rem !important;
    line-height: 1.7 !important;
  }

  .blog-heading {
    letter-spacing: -.02em !important;
    margin: 2rem 0 1rem !important;
    font-size: 1.5rem !important;
  }

  .blog-paragraph {
    margin-bottom: 1.5rem !important;
    font-size: 1rem !important;
    line-height: 1.7 !important;
  }

  .blog-content img, .blog-content .blog-image {
    border-radius: .75rem !important;
    margin: 1.5rem 0 !important;
    box-shadow: 0 8px 25px #0000001a !important;
  }

  .blog-content > p:first-of-type:first-letter, .blog-paragraph:first-of-type p:first-of-type:first-letter {
    font-size: 3rem;
    line-height: 2.5rem;
  }

  .blog-content ul li {
    gap: .5rem !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }

  .blog-content ul li .w-2.h-2 {
    width: 6px !important;
    height: 6px !important;
    margin-top: .5rem !important;
  }

  .blog-paragraph p {
    margin-bottom: 1rem !important;
    font-size: 1rem !important;
    line-height: 1.7 !important;
  }

  .grid.grid-cols-1.md\\:grid-cols-2.lg\\:grid-cols-3 {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  .bg-white.rounded-3xl {
    border-radius: 1.5rem !important;
    margin-bottom: 1rem !important;
  }

  .inline-flex.items-center.px-6.py-3, .inline-flex.items-center.px-8.py-4, .inline-flex.items-center.px-10.py-5 {
    justify-content: center !important;
    width: 100% !important;
    margin-bottom: .75rem !important;
  }
}

.blog-content ::selection {
  color: #1f2937;
  background-color: #22c55e33;
}

.blog-content ::selection {
  color: #1f2937;
  background-color: #22c55e33;
}

.line-clamp-2 {
  -webkit-line-clamp: 2 !important;
  text-overflow: ellipsis !important;
  -webkit-box-orient: vertical !important;
  display: -webkit-box !important;
  overflow: hidden !important;
}

.line-clamp-3 {
  -webkit-line-clamp: 3 !important;
  text-overflow: ellipsis !important;
  -webkit-box-orient: vertical !important;
  display: -webkit-box !important;
  overflow: hidden !important;
}

.bg-white .relative.h-48, .bg-white .relative.h-56 {
  border-radius: 1.5rem 1.5rem 0 0 !important;
  width: 100% !important;
  height: 14rem !important;
  position: relative !important;
  overflow: hidden !important;
}

.bg-white .relative.h-48 img, .bg-white .relative.h-56 img {
  object-fit: cover !important;
  object-position: center !important;
  width: 100% !important;
  height: 100% !important;
  transition: transform .7s cubic-bezier(.4, 0, .2, 1) !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
}

.group:hover .relative.h-56 img, .group:hover .relative.h-48 img {
  transform: scale(1.1) !important;
}

.bg-white.rounded-3xl {
  border: 1px solid #e5e7eb99 !important;
  transition: all .4s cubic-bezier(.4, 0, .2, 1) !important;
  box-shadow: 0 4px 20px #00000014, 0 1px 3px #0000000d !important;
}

.group:hover.bg-white.rounded-3xl {
  border-color: #10b9814d !important;
  box-shadow: 0 20px 40px #0000001f, 0 8px 15px #00000014 !important;
}

.bg-gradient-to-r.from-green-600.to-green-500 {
  background: linear-gradient(135deg, #059669, #10b981) !important;
  box-shadow: 0 2px 8px #0596694d !important;
}

.inline-flex.items-center.px-6.py-3.bg-gradient-to-r {
  transition: all .3s cubic-bezier(.4, 0, .2, 1) !important;
  box-shadow: 0 4px 15px #0596694d !important;
}

.inline-flex.items-center.px-6.py-3.bg-gradient-to-r:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 25px #05966966 !important;
}

.star-rating svg {
  filter: drop-shadow(0 1px 2px #0000001a) !important;
  transition: all .2s !important;
}

.group:hover .star-rating svg {
  transform: scale(1.1) !important;
}

.relative.w-full.h-64 img, .relative.w-full.h-80 img, .relative.w-full.h-96 img {
  object-fit: cover !important;
  object-position: center !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
}

@media screen {
  .blog-content img, .blog-content figure, .blog-content picture {
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
    position: static !important;
  }

  .blog-content * {
    position: static !important;
  }

  .blog-content .relative {
    position: relative !important;
  }

  .blog-content .absolute, .blog-content .fixed {
    position: static !important;
  }
}

@media (width <= 768px) {
  span[role="text"], span[role="text"] span {
    color: #4ade80 !important;
    background-color: #0000 !important;
    background-image: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    -webkit-text-fill-color: #4ade80 !important;
    text-shadow: 0 0 15px #00cc0080 !important;
    visibility: visible !important;
    opacity: 1 !important;
    display: inline-block !important;
  }

  .text-transparent {
    color: #4ade80 !important;
    -webkit-text-fill-color: #4ade80 !important;
    background-image: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
  }

  .bg-clip-text {
    background-image: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
  }

  section[class*="hero"] h2 span[role="text"], section[class*="hero"] h2 span[role="text"] * {
    color: #4ade80 !important;
    -webkit-text-fill-color: #4ade80 !important;
    text-align: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    background-image: none !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    display: inline-block !important;
  }
}
