diff --git a/components.json b/components.json new file mode 100644 index 0000000..f826c54 --- /dev/null +++ b/components.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/app/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "iconLibrary": "lucide", + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "registries": {} +} diff --git a/package-lock.json b/package-lock.json index 1b36fe3..d568d61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,9 +8,15 @@ "name": "summit-painting", "version": "0.1.0", "dependencies": { + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "framer-motion": "^12.23.12", + "lucide-react": "^0.542.0", "next": "15.5.2", "react": "19.1.0", - "react-dom": "19.1.0" + "react-dom": "19.1.0", + "tailwind-merge": "^3.3.1", + "tailwindcss-animate": "^1.0.7" }, "devDependencies": { "@eslint/eslintrc": "^3", @@ -2291,12 +2297,33 @@ "node": ">=18" } }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -3309,6 +3336,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/framer-motion": { + "version": "12.23.12", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.12.tgz", + "integrity": "sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.23.12", + "motion-utils": "^12.23.6", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -4475,6 +4529,15 @@ "loose-envify": "cli.js" } }, + "node_modules/lucide-react": { + "version": "0.542.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.542.0.tgz", + "integrity": "sha512-w3hD8/SQB7+lzU2r4VdFyzzOzKnUjTZIF/MQJGSSvni7Llewni4vuViRppfRAa2guOsY5k4jZyxw/i9DQHv+dw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/magic-string": { "version": "0.30.18", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz", @@ -4581,6 +4644,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/motion-dom": { + "version": "12.23.12", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.12.tgz", + "integrity": "sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.23.6" + } + }, + "node_modules/motion-utils": { + "version": "12.23.6", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz", + "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5689,13 +5767,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tailwind-merge": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", + "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tailwindcss": { "version": "4.1.13", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.13.tgz", "integrity": "sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==", - "dev": true, "license": "MIT" }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, "node_modules/tapable": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", diff --git a/package.json b/package.json index d26ac34..63b818d 100644 --- a/package.json +++ b/package.json @@ -9,19 +9,25 @@ "lint": "eslint" }, "dependencies": { + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "framer-motion": "^12.23.12", + "lucide-react": "^0.542.0", + "next": "15.5.2", "react": "19.1.0", "react-dom": "19.1.0", - "next": "15.5.2" + "tailwind-merge": "^3.3.1", + "tailwindcss-animate": "^1.0.7" }, "devDependencies": { - "typescript": "^5", + "@eslint/eslintrc": "^3", + "@tailwindcss/postcss": "^4", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "@tailwindcss/postcss": "^4", - "tailwindcss": "^4", "eslint": "^9", "eslint-config-next": "15.5.2", - "@eslint/eslintrc": "^3" + "tailwindcss": "^4", + "typescript": "^5" } } diff --git a/postcss.config.mjs b/postcss.config.mjs index c7bcb4b..c2ddf74 100644 --- a/postcss.config.mjs +++ b/postcss.config.mjs @@ -1,5 +1,5 @@ -const config = { - plugins: ["@tailwindcss/postcss"], +export default { + plugins: { + "@tailwindcss/postcss": {}, + }, }; - -export default config; diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx new file mode 100644 index 0000000..eaff7b8 --- /dev/null +++ b/src/app/about/page.tsx @@ -0,0 +1,68 @@ +import AboutUsSection from "@/components/ui/about-us-section"; + +export default function AboutPage() { + return ( +
+ + {/* Revamped About section (21st.dev base, adapted to our palette/content) */} + + + {/* Keep key parts of our original content to complement the new section */} +
+
+
+

Why Choose Us

+

+ We combine careful surface prep, premium materials, and a tidy jobsite to deliver long‑lasting results. + You'll get reliable scheduling, clear updates, and a thorough walkthrough at completion. +

+
    +
  • + + Premium coatings and primers for exterior and interior applications +
  • +
  • + + Clean lines, texture matching, and seamless drywall repairs +
  • +
  • + + Wood repair and refinishing to protect architectural details +
  • +
  • + + Respect for your home with daily cleanup and tidy edges +
  • +
+
+ +
+

Our Values

+
    +
  • + + Quality craftsmanship +
  • +
  • + + Honest communication +
  • +
  • + + Customer satisfaction +
  • +
  • + + Professional integrity +
  • +
  • + + Continuous improvement +
  • +
+
+
+
+
+ ); +} diff --git a/src/app/areas/page.tsx b/src/app/areas/page.tsx new file mode 100644 index 0000000..77b546e --- /dev/null +++ b/src/app/areas/page.tsx @@ -0,0 +1,46 @@ +import Link from "next/link"; +import { Button } from "@/components/ui/Button"; +import ServiceAreasShowcase from "@/components/ServiceAreasShowcase"; + +export default function AreasPage() { + const areas = [ + { name: "Colorado Springs", description: "Serving the entire Colorado Springs metro area" }, + { name: "Monument", description: "Including Monument and surrounding communities" }, + { name: "Black Forest", description: "Serving Black Forest and nearby neighborhoods" }, + { name: "Woodland Park", description: "Covering Woodland Park and surrounding areas" }, + { name: "Guffey", description: "Including Guffey and Lake George region" }, + { name: "Lake George", description: "Serving Lake George and surrounding communities" } + ]; + + return ( +
+ {/* Hero Section */} +
+
+

+ Service Areas +

+

+ We proudly serve these communities in Colorado Springs and surrounding areas. +

+
+
+ + {/* Areas Showcase (replaces static list) */} + + + {/* CTA Section */} +
+
+

Need our services in your area?

+

+ Contact us today for a free consultation and quote. +

+ +
+
+
+ ); +} diff --git a/src/app/cookies/page.tsx b/src/app/cookies/page.tsx new file mode 100644 index 0000000..db852eb --- /dev/null +++ b/src/app/cookies/page.tsx @@ -0,0 +1,63 @@ +import Link from "next/link"; +import { Button } from "@/components/ui/Button"; + +export default function CookiesPage() { + return ( +
+ {/* Hero Section */} +
+
+

+ Cookie Policy +

+
+
+ + {/* Content */} +
+
+
+

What Are Cookies?

+

Cookies are small text files that are placed on your device when you visit a website. They help websites remember information about your visit and improve your browsing experience.

+ +

How We Use Cookies

+

We use cookies for the following purposes:

+
    +
  • Essential cookies: Required for the website to function properly
  • +
  • Performance cookies: Help us understand how visitors interact with our website
  • +
  • Functional cookies: Enable enhanced functionality and personalization
  • +
  • Targeting cookies: Used to deliver relevant advertising
  • +
+ +

Types of Cookies We Use

+

Essential Cookies

+

These cookies are necessary for the website to function properly and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in, or filling in forms.

+ +

Performance Cookies

+

These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand which pages are the most and least popular and see how visitors move around the site.

+ +

Functional Cookies

+

These cookies enable the website to provide enhanced functionality and personalization. They may be set by us or by third-party providers whose services we have added to our pages.

+ +

Targeting Cookies

+

These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant advertisements on other sites.

+ +

Managing Cookies

+

You can control and/or delete cookies as you wish. You can delete all cookies that are already on your device and you can set most browsers to prevent them from being placed. However, if you do this, you may have to manually adjust some preferences every time you visit the site.

+ +

Changes to This Policy

+

We reserve the right to modify this cookie policy at any time. Changes will be posted on this page with an updated effective date.

+ +

Contact Us

+

If you have any questions about this cookie policy, please contact us at:

+

+ Summit Painting & Handyman
+ Email: nicholai@biohazardvfx.com
+ Phone: (719) 660-4281 +

+
+
+
+
+ ); +} diff --git a/src/app/gallery/page.tsx b/src/app/gallery/page.tsx new file mode 100644 index 0000000..71bbbfe --- /dev/null +++ b/src/app/gallery/page.tsx @@ -0,0 +1,131 @@ +import Link from "next/link"; +import { Button } from "@/components/ui/Button"; + +export default function GalleryPage() { + // Mock data for gallery items + const galleryItems = [ + { + id: 1, + title: "Front Porch Renovation", + description: "Complete exterior paint refresh with new trim and siding.", + location: "Colorado Springs", + category: "painting", + beforeImage: "/placeholder-before.jpg", + afterImage: "/placeholder-after.jpg" + }, + { + id: 2, + title: "Kitchen Remodel", + description: "Full kitchen renovation with new cabinets and paint.", + location: "Monument", + category: "painting", + beforeImage: "/placeholder-before.jpg", + afterImage: "/placeholder-after.jpg" + }, + { + id: 3, + title: "Deck Restoration", + description: "Complete deck restoration and staining project.", + location: "Black Forest", + category: "wood", + beforeImage: "/placeholder-before.jpg", + afterImage: "/placeholder-after.jpg" + }, + { + id: 4, + title: "Drywall Repair", + description: "Ceiling repair and texture matching.", + location: "Woodland Park", + category: "drywall", + beforeImage: "/placeholder-before.jpg", + afterImage: "/placeholder-after.jpg" + }, + { + id: 5, + title: "Exterior Painting", + description: "Complete home exterior paint refresh.", + location: "Guffey", + category: "painting", + beforeImage: "/placeholder-before.jpg", + afterImage: "/placeholder-after.jpg" + }, + { + id: 6, + title: "Trim Installation", + description: "New trim installation in living room.", + location: "Lake George", + category: "installations", + beforeImage: "/placeholder-before.jpg", + afterImage: "/placeholder-after.jpg" + } + ]; + + const categories = ["all", "painting", "drywall", "wood", "installations"]; + + return ( +
+ {/* Hero Section */} +
+
+

+ Before & After Gallery +

+

+ See our transformation work in action. Real projects, real results. +

+
+
+ + {/* Category Filter */} +
+
+
+ {categories.map((category) => ( + + ))} +
+
+
+ + {/* Gallery Grid */} +
+
+
+ {galleryItems.map((item) => ( +
+
+
+ Before/After Image +
+
+
+

{item.title}

+

{item.description}

+

Location: {item.location}

+
+
+ ))} +
+
+
+ + {/* CTA Section */} +
+
+

Want to see more?

+

+ Contact us today for a free consultation and quote. +

+ +
+
+
+ ); +} diff --git a/src/app/globals.css b/src/app/globals.css index a2dc41e..fa28679 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,26 +1,164 @@ @import "tailwindcss"; -:root { - --background: #ffffff; - --foreground: #171717; -} +@plugin "tailwindcss-animate"; + +@custom-variant dark (&:is(.dark *)); @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); -} -@media (prefers-color-scheme: dark) { - :root { - --background: #0a0a0a; - --foreground: #ededed; - } + /* Custom palette */ + --color-taupe-50: #f8f6f4; + --color-taupe-100: #f0ede9; + --color-taupe-200: #e1ddd7; + --color-taupe-300: #d2cdc5; + --color-taupe-400: #b8b0a5; + --color-taupe-500: #9e968a; + --color-taupe-600: #7a6c5d; + --color-taupe-700: #6b5e51; + --color-taupe-800: #5b4f43; + --color-taupe-900: #4a3b2f; + --color-taupe-950: #2d2218; + + --color-olive-50: #f4f7f1; + --color-olive-100: #e8f0e2; + --color-olive-200: #d1e1c5; + --color-olive-300: #b9d2a8; + --color-olive-400: #9fb98a; + --color-olive-500: #748e58; + --color-olive-600: #5f7446; + --color-olive-700: #4b5b38; + --color-olive-800: #37432a; + --color-olive-900: #242b1c; + --color-olive-950: #12160d; + + --color-brown-50: #faf8f6; + --color-brown-100: #f4f0ec; + --color-brown-200: #e8e0d7; + --color-brown-300: #d9cfc4; + --color-brown-400: #bda08d; + --color-brown-500: #9e7a64; + --color-brown-600: #7a5e4d; + --color-brown-700: #5b4636; + --color-brown-800: #4a372a; + --color-brown-900: #382a1f; + --color-brown-950: #261d15; + --color-sidebar-ring: var(--sidebar-ring); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar: var(--sidebar); + --color-chart-5: var(--chart-5); + --color-chart-4: var(--chart-4); + --color-chart-3: var(--chart-3); + --color-chart-2: var(--chart-2); + --color-chart-1: var(--chart-1); + --color-ring: var(--ring); + --color-input: var(--input); + --color-border: var(--border); + --color-destructive: var(--destructive); + --color-accent-foreground: var(--accent-foreground); + --color-accent: var(--accent); + --color-muted-foreground: var(--muted-foreground); + --color-muted: var(--muted); + --color-secondary-foreground: var(--secondary-foreground); + --color-secondary: var(--secondary); + --color-primary-foreground: var(--primary-foreground); + --color-primary: var(--primary); + --color-popover-foreground: var(--popover-foreground); + --color-popover: var(--popover); + --color-card-foreground: var(--card-foreground); + --color-card: var(--card); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); } body { - background: var(--background); - color: var(--foreground); - font-family: Arial, Helvetica, sans-serif; + font-family: var(--font-geist-sans), Arial, Helvetica, sans-serif; +} + +:root { + --radius: 0.625rem; + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); +} + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.205 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.556 0 0); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f7fa87e..814d88f 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,6 +1,9 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; +import UnifiedNav from "@/components/UnifiedNav"; +import { Footer } from "@/components/Footer"; +import { MobileCTA } from "@/components/MobileCTA"; const geistSans = Geist({ variable: "--font-geist-sans", @@ -13,8 +16,33 @@ const geistMono = Geist_Mono({ }); export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: "Summit Painting & Handyman Services", + description: "Professional residential painting and handyman services in Colorado Springs and surrounding areas", +}; + +const localBusinessJsonLd = { + "@context": "https://schema.org", + "@type": "HomeAndConstructionBusiness", + "name": "Summit Painting & Handyman Services", + "url": "https://localhost:3000/", + "telephone": "+1-719-660-4281", + "email": "nicholai@biohazardvfx.com", + "areaServed": [ + "Colorado Springs", + "Monument", + "Black Forest", + "Woodland Park", + "Guffey", + "Lake George" + ], + "servesCuisine": undefined, + "image": undefined, + "sameAs": [], + "priceRange": "$$", + "serviceArea": { + "@type": "AdministrativeArea", + "name": "Colorado Springs and surrounding areas" + } }; export default function RootLayout({ @@ -23,11 +51,27 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - + - {children} + + Skip to content + +