diff --git a/.gitignore b/.gitignore index 28f1ba75..0b3a89d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,40 @@ node_modules -.DS_Store \ No newline at end of file +.DS_Store +dist/assets/images/blueprint-1.png +dist/assets/images/blueprint-2.png +dist/assets/images/blueprint-3.png +A DIFFERENT KIND OF AGENT/1.png +A DIFFERENT KIND OF AGENT/2.png +A DIFFERENT KIND OF AGENT/3.png +A DIFFERENT KIND OF AGENT/4.png +blue circle/* +dist/assets/files.zip +dist/assets/pdfs/prep-to-sell2.pdf +doorhanger/CANVA_PROOF_GEUe0HE5ytrO_923907c2703fe415ccd257675adc7157cfbe7bf8c5e7e569baccd539fcfafec0--1.pdf +files.zip +FINAL business card-back.pdf +FINAL business card.pdf +pdfs/01_The_Buying_Process.pdf +pdfs/02_Prep_to_Sell_Checklist.pdf +pdfs/03_Offer_Terms_Explained.pdf +pdfs/04_Selling_Timeline_Planner.pdf +pdfs/05_First_Time_Buyer_FAQ.pdf +pdfs/06_Neighborhood_Market_Report.pdf +pdfs/07_Mortgage_Glossary.pdf +pdfs/files.zip +pdfs/files/01_The_Buying_Process.pdf +pdfs/files/02_Prep_to_Sell_Checklist.pdf +pdfs/files/03_Offer_Terms_Explained.pdf +pdfs/files/04_Selling_Timeline_Planner.pdf +dist/assets/images/desktop-logo copy.png +dist/assets/images/desktop-logo1.png +dist/desktop-logo.png +logo/script-lana.png +logo/script.png +dist/assets/images/lana2_edited.png +dist/assets/images/logo_light.png +fonts matter/* +branding/background.png +instagram/* +scripts/render-pug.js +bluecirclecreative/* \ No newline at end of file diff --git a/dist/assets/android-chrome-192x192.png b/dist/assets/android-chrome-192x192.png new file mode 100644 index 00000000..ac2f7822 Binary files /dev/null and b/dist/assets/android-chrome-192x192.png differ diff --git a/dist/assets/android-chrome-512x512.png b/dist/assets/android-chrome-512x512.png new file mode 100644 index 00000000..f582c97b Binary files /dev/null and b/dist/assets/android-chrome-512x512.png differ diff --git a/dist/assets/apple-touch-icon.png b/dist/assets/apple-touch-icon.png new file mode 100644 index 00000000..76797c82 Binary files /dev/null and b/dist/assets/apple-touch-icon.png differ diff --git a/dist/assets/favicon-16x16.png b/dist/assets/favicon-16x16.png new file mode 100644 index 00000000..dd6948b8 Binary files /dev/null and b/dist/assets/favicon-16x16.png differ diff --git a/dist/assets/favicon-32x32.png b/dist/assets/favicon-32x32.png new file mode 100644 index 00000000..838ca416 Binary files /dev/null and b/dist/assets/favicon-32x32.png differ diff --git a/dist/assets/favicon.ico b/dist/assets/favicon.ico index 9356735c..99c5e858 100644 Binary files a/dist/assets/favicon.ico and b/dist/assets/favicon.ico differ diff --git a/dist/assets/images/Logo_Realty_HZ_STK_BLU_RGB_FR.png b/dist/assets/images/Logo_Realty_HZ_STK_BLU_RGB_FR.png new file mode 100644 index 00000000..5d930e77 Binary files /dev/null and b/dist/assets/images/Logo_Realty_HZ_STK_BLU_RGB_FR.png differ diff --git a/dist/assets/images/Logo_Realty_VER_BLU_RGB_FR.png b/dist/assets/images/Logo_Realty_VER_BLU_RGB_FR.png new file mode 100644 index 00000000..4d5deaba Binary files /dev/null and b/dist/assets/images/Logo_Realty_VER_BLU_RGB_FR.png differ diff --git a/dist/assets/images/adobe-icon.png b/dist/assets/images/adobe-icon.png new file mode 100644 index 00000000..44767583 Binary files /dev/null and b/dist/assets/images/adobe-icon.png differ diff --git a/dist/assets/images/banners/bedroom.png b/dist/assets/images/banners/bedroom.png new file mode 100644 index 00000000..b6d801a8 Binary files /dev/null and b/dist/assets/images/banners/bedroom.png differ diff --git a/dist/assets/images/banners/buyers.png b/dist/assets/images/banners/buyers.png new file mode 100644 index 00000000..83d507c4 Binary files /dev/null and b/dist/assets/images/banners/buyers.png differ diff --git a/dist/assets/images/banners/contact.png b/dist/assets/images/banners/contact.png new file mode 100644 index 00000000..7fc2b92b Binary files /dev/null and b/dist/assets/images/banners/contact.png differ diff --git a/dist/assets/images/banners/home.png b/dist/assets/images/banners/home.png new file mode 100644 index 00000000..edadd330 Binary files /dev/null and b/dist/assets/images/banners/home.png differ diff --git a/dist/assets/images/banners/indoor-outdoor.png b/dist/assets/images/banners/indoor-outdoor.png new file mode 100644 index 00000000..a9c046a6 Binary files /dev/null and b/dist/assets/images/banners/indoor-outdoor.png differ diff --git a/dist/assets/images/banners/listing-hero.png b/dist/assets/images/banners/listing-hero.png new file mode 100644 index 00000000..5e557043 Binary files /dev/null and b/dist/assets/images/banners/listing-hero.png differ diff --git a/dist/assets/images/banners/listing-thumb.png b/dist/assets/images/banners/listing-thumb.png new file mode 100644 index 00000000..033ba023 Binary files /dev/null and b/dist/assets/images/banners/listing-thumb.png differ diff --git a/dist/assets/images/banners/living.png b/dist/assets/images/banners/living.png new file mode 100644 index 00000000..8dd2227a Binary files /dev/null and b/dist/assets/images/banners/living.png differ diff --git a/dist/assets/images/banners/outdoor.png b/dist/assets/images/banners/outdoor.png new file mode 100644 index 00000000..1b82f94a Binary files /dev/null and b/dist/assets/images/banners/outdoor.png differ diff --git a/dist/assets/images/banners/patio.png b/dist/assets/images/banners/patio.png new file mode 100644 index 00000000..21f39bdf Binary files /dev/null and b/dist/assets/images/banners/patio.png differ diff --git a/dist/assets/images/banners/resources.png b/dist/assets/images/banners/resources.png new file mode 100644 index 00000000..139485b0 Binary files /dev/null and b/dist/assets/images/banners/resources.png differ diff --git a/dist/assets/images/banners/sand.png b/dist/assets/images/banners/sand.png new file mode 100644 index 00000000..90ce66b4 Binary files /dev/null and b/dist/assets/images/banners/sand.png differ diff --git a/dist/assets/images/banners/sellers.png b/dist/assets/images/banners/sellers.png new file mode 100644 index 00000000..26c80bfd Binary files /dev/null and b/dist/assets/images/banners/sellers.png differ diff --git a/dist/assets/images/cb-northstar-logo-stacked.png b/dist/assets/images/cb-northstar-logo-stacked.png new file mode 100644 index 00000000..d0cc5501 Binary files /dev/null and b/dist/assets/images/cb-northstar-logo-stacked.png differ diff --git a/dist/assets/images/desktop-logo.png b/dist/assets/images/desktop-logo.png new file mode 100644 index 00000000..4835ff30 Binary files /dev/null and b/dist/assets/images/desktop-logo.png differ diff --git a/dist/assets/images/favico.png b/dist/assets/images/favico.png new file mode 100644 index 00000000..526896d6 Binary files /dev/null and b/dist/assets/images/favico.png differ diff --git a/dist/assets/images/favicon.svg b/dist/assets/images/favicon.svg new file mode 100644 index 00000000..944ec911 --- /dev/null +++ b/dist/assets/images/favicon.svg @@ -0,0 +1,23 @@ + + + + + + + + + + LS + diff --git a/dist/assets/images/lana.png b/dist/assets/images/lana.png new file mode 100644 index 00000000..bb5beb26 Binary files /dev/null and b/dist/assets/images/lana.png differ diff --git a/dist/assets/images/lana2.png b/dist/assets/images/lana2.png new file mode 100644 index 00000000..bd2c9023 Binary files /dev/null and b/dist/assets/images/lana2.png differ diff --git a/dist/assets/images/mobile-logo-sm.png b/dist/assets/images/mobile-logo-sm.png new file mode 100644 index 00000000..862e23a3 Binary files /dev/null and b/dist/assets/images/mobile-logo-sm.png differ diff --git a/dist/assets/images/mobile-logo.png b/dist/assets/images/mobile-logo.png new file mode 100644 index 00000000..cf96f17c Binary files /dev/null and b/dist/assets/images/mobile-logo.png differ diff --git a/dist/assets/images/mobile-logo1.png b/dist/assets/images/mobile-logo1.png new file mode 100644 index 00000000..86f181a7 Binary files /dev/null and b/dist/assets/images/mobile-logo1.png differ diff --git a/dist/assets/images/sellers.png b/dist/assets/images/sellers.png new file mode 100644 index 00000000..fac6e370 Binary files /dev/null and b/dist/assets/images/sellers.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-1221-Virginia-Way.png b/dist/assets/images/thumbs/listing-thumb-1221-Virginia-Way.png new file mode 100644 index 00000000..2bb270cf Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-1221-Virginia-Way.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-1617-calle-alta.png b/dist/assets/images/thumbs/listing-thumb-1617-calle-alta.png new file mode 100644 index 00000000..d9d74e0b Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-1617-calle-alta.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-342-Playa-Del-Sur.jpg b/dist/assets/images/thumbs/listing-thumb-342-Playa-Del-Sur.jpg new file mode 100644 index 00000000..3712d4b8 Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-342-Playa-Del-Sur.jpg differ diff --git a/dist/assets/images/thumbs/listing-thumb-342-Playa-Del-Sur.png b/dist/assets/images/thumbs/listing-thumb-342-Playa-Del-Sur.png new file mode 100644 index 00000000..3712d4b8 Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-342-Playa-Del-Sur.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-3890-Nobel-Drive.png b/dist/assets/images/thumbs/listing-thumb-3890-Nobel-Drive.png new file mode 100644 index 00000000..8148a796 Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-3890-Nobel-Drive.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-464-Prospect.png b/dist/assets/images/thumbs/listing-thumb-464-Prospect.png new file mode 100644 index 00000000..e0e2ec93 Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-464-Prospect.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-645-Front-St-2002.png b/dist/assets/images/thumbs/listing-thumb-645-Front-St-2002.png new file mode 100644 index 00000000..b993f2a7 Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-645-Front-St-2002.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-778-La-Canada.png b/dist/assets/images/thumbs/listing-thumb-778-La-Canada.png new file mode 100644 index 00000000..48086501 Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-778-La-Canada.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-8477-El-Paseo-Grande.png b/dist/assets/images/thumbs/listing-thumb-8477-El-Paseo-Grande.png new file mode 100644 index 00000000..db046e3b Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-8477-El-Paseo-Grande.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-8490-Via-Sonoma.png b/dist/assets/images/thumbs/listing-thumb-8490-Via-Sonoma.png new file mode 100644 index 00000000..033ba023 Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-8490-Via-Sonoma.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-8585-via-Mallorca.png b/dist/assets/images/thumbs/listing-thumb-8585-via-Mallorca.png new file mode 100644 index 00000000..6d59db4b Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-8585-via-Mallorca.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-950-6th-Ave-432.png b/dist/assets/images/thumbs/listing-thumb-950-6th-Ave-432.png new file mode 100644 index 00000000..7a6214da Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-950-6th-Ave-432.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-ollivetas.png b/dist/assets/images/thumbs/listing-thumb-ollivetas.png new file mode 100644 index 00000000..cfb7fe8a Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-ollivetas.png differ diff --git a/dist/assets/images/thumbs/listing-thumb-via-casa-alta.png b/dist/assets/images/thumbs/listing-thumb-via-casa-alta.png new file mode 100644 index 00000000..6398407a Binary files /dev/null and b/dist/assets/images/thumbs/listing-thumb-via-casa-alta.png differ diff --git a/dist/assets/images/transparent-bg.png b/dist/assets/images/transparent-bg.png new file mode 100644 index 00000000..c6c58c76 Binary files /dev/null and b/dist/assets/images/transparent-bg.png differ diff --git a/dist/assets/pdfs/01_The_Buying_Process.pdf b/dist/assets/pdfs/01_The_Buying_Process.pdf new file mode 100644 index 00000000..09a48f0d Binary files /dev/null and b/dist/assets/pdfs/01_The_Buying_Process.pdf differ diff --git a/dist/assets/pdfs/02_Prep_to_Sell_Checklist.pdf b/dist/assets/pdfs/02_Prep_to_Sell_Checklist.pdf new file mode 100644 index 00000000..90000548 Binary files /dev/null and b/dist/assets/pdfs/02_Prep_to_Sell_Checklist.pdf differ diff --git a/dist/assets/pdfs/03_Offer_Terms_Explained.pdf b/dist/assets/pdfs/03_Offer_Terms_Explained.pdf new file mode 100644 index 00000000..adc3d03a Binary files /dev/null and b/dist/assets/pdfs/03_Offer_Terms_Explained.pdf differ diff --git a/dist/assets/pdfs/04_Selling_Timeline_Planner.pdf b/dist/assets/pdfs/04_Selling_Timeline_Planner.pdf new file mode 100644 index 00000000..267e6a64 Binary files /dev/null and b/dist/assets/pdfs/04_Selling_Timeline_Planner.pdf differ diff --git a/dist/assets/pdfs/05_First_Time_Buyer_FAQ.pdf b/dist/assets/pdfs/05_First_Time_Buyer_FAQ.pdf new file mode 100644 index 00000000..114bbd87 Binary files /dev/null and b/dist/assets/pdfs/05_First_Time_Buyer_FAQ.pdf differ diff --git a/dist/assets/pdfs/06_Neighborhood_Market_Report.pdf b/dist/assets/pdfs/06_Neighborhood_Market_Report.pdf new file mode 100644 index 00000000..62501f34 Binary files /dev/null and b/dist/assets/pdfs/06_Neighborhood_Market_Report.pdf differ diff --git a/dist/assets/pdfs/07_Mortgage_Glossary.pdf b/dist/assets/pdfs/07_Mortgage_Glossary.pdf new file mode 100644 index 00000000..2ee8e68a Binary files /dev/null and b/dist/assets/pdfs/07_Mortgage_Glossary.pdf differ diff --git a/dist/assets/pdfs/08_Home_Tour_Comparison_Worksheet.pdf b/dist/assets/pdfs/08_Home_Tour_Comparison_Worksheet.pdf new file mode 100644 index 00000000..d52ef249 Binary files /dev/null and b/dist/assets/pdfs/08_Home_Tour_Comparison_Worksheet.pdf differ diff --git a/dist/assets/pdfs/09_Home_Tour_Comparison_Notes.pdf b/dist/assets/pdfs/09_Home_Tour_Comparison_Notes.pdf new file mode 100644 index 00000000..3441d0d9 Binary files /dev/null and b/dist/assets/pdfs/09_Home_Tour_Comparison_Notes.pdf differ diff --git a/dist/assets/pdfs/10_Home_Inspection_Day_Checklist.pdf b/dist/assets/pdfs/10_Home_Inspection_Day_Checklist.pdf new file mode 100644 index 00000000..49ba1dcc Binary files /dev/null and b/dist/assets/pdfs/10_Home_Inspection_Day_Checklist.pdf differ diff --git a/dist/assets/pdfs/11_Monthly_Home_Budget_Worksheet.pdf b/dist/assets/pdfs/11_Monthly_Home_Budget_Worksheet.pdf new file mode 100644 index 00000000..2b98fbc6 Binary files /dev/null and b/dist/assets/pdfs/11_Monthly_Home_Budget_Worksheet.pdf differ diff --git a/dist/assets/pdfs/12_Pricing_Strategy.pdf b/dist/assets/pdfs/12_Pricing_Strategy.pdf new file mode 100644 index 00000000..def09322 Binary files /dev/null and b/dist/assets/pdfs/12_Pricing_Strategy.pdf differ diff --git a/dist/assets/pdfs/13_Offer_Review_Sheet.pdf b/dist/assets/pdfs/13_Offer_Review_Sheet.pdf new file mode 100644 index 00000000..ed97e622 Binary files /dev/null and b/dist/assets/pdfs/13_Offer_Review_Sheet.pdf differ diff --git a/dist/budget-calculator.html b/dist/budget-calculator.html new file mode 100644 index 00000000..d012415d --- /dev/null +++ b/dist/budget-calculator.html @@ -0,0 +1,968 @@ + + + + + + + + + + Monthly Home Budget Calculator | La Jolla & San Diego | Lana Swanson + REALTOR® + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main + content + + + + +
+ +

Monthly Home + Budget
Calculator

+

+ Mortgage payments are only part of the picture when buying a home in + La Jolla or San Diego. Use this free calculator to estimate your full + monthly housing cost — before making an offer. +

+
+ +
+
+ + +
+
+

Potential + Home Details

+ +
+
+ +
+
+ +
La Jolla median + ~$2.5M; San Diego County varies widely
+
+
+ + +
+
+ +
+
+ +
Enter as dollar + amount
+
+
+ + +
+
+ +
+
+
Loan Amount
+
Calculated automatically
+
+
+
+ +
+
+ +
+
+ + + Enter + interest rate as a percentage, for example 6.5 +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+

Estimated + Monthly Mortgage

+ +
+
+ +
+
+
Principal + Interest
+
Calculated from your inputs above
+
+
+
+ +
+
+ +
Approx. 1.1% of + home price / yr in CA
+
+
+ + +
+
+ +
+
+ +
Approx. $100–200/mo + for most San Diego homes
+
+
+ + +
+
+ +
+
+ +
If down payment is less + than 20%
+
+
+ + +
+
+ +
+
+ +
Common in La Jolla condos + and planned communities
+
+
+ + +
+
+ +
+
+ + +
+
+

Ongoing + Household Expenses

+ +
+
+ +
+
+
+ + +
+
+ +
+
+
+ + +
+
+ +
+
+ +
Typically 1% of + home value / yr
+
+
+ + +
+
+ +
+
+
+ + +
+
+ +
+
+
+ + +
+
+ +
+
+
+ + +
+
+ +
+
+ + +
+
+

Budget summary

+
+
+
Total + Estimated Monthly Cost
+
$0
+
+
+ +
+ + + Enter your + target comfortable monthly housing budget in dollars +
+
+
+ +
+
+
Difference
+
+
+
+
+
+ +
+
+
Estimated + Affordable Home Price Range
+ +
+
+
+
Estimate based + on your goal monthly cost multiplied by 200
+
+
+
+
+ + +
+
+

Ready to talk about + buying in La Jolla or San Diego?

+

+ Numbers are a starting point — not the whole picture. As a La + Jolla REALTOR® with Coldwell Banker Realty, I can help you + understand what your budget means in the La Jolla, Bird Rock, + La Jolla Shores, and greater San Diego market. No pressure, no + commitment. +

+
+ +
+ +
+
+ + + + + + + + + + + + + + diff --git a/dist/buyers.html b/dist/buyers.html new file mode 100644 index 00000000..555f1167 --- /dev/null +++ b/dist/buyers.html @@ -0,0 +1,645 @@ + + + + + + + + + + Buying a Home in La Jolla & San Diego | Lana Swanson + REALTOR® + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main + content + + + +
+ + +
+ + +
+

+ Your Guide to Buying a Home in San Diego +

+

+ From your first search to closing day — I'll keep the + process organized, honest, and moving forward. +

+
+
+ + +
+
+

Buying in La + Jolla and San Diego Is Competitive. Here's How I + Help.

+

+ Buying a home in La Jolla, Bird Rock, La Jolla Shores, + or anywhere in San Diego County + is one of the biggest financial decisions you'll make — + and the market moves fast. + As a La Jolla REALTOR® with Coldwell Banker Realty, I + help buyers stay informed, + move strategically, and avoid the mistakes that come + from feeling rushed or underprepared. +

+
+
+ + +
+
+

What you can + expect

+ +
+
+

A + clear game plan

+

+ We define your criteria, timeline, and + priorities so every showing + and decision is intentional — and you're ready + when the right + La Jolla or San Diego home appears. +

+
+ +
+

Strong La Jolla market + insight

+

+ I help you understand value, competition, and + tradeoffs in the + La Jolla real estate market so you don't overpay + — and don't miss + the home that truly fits. +

+
+ +
+

Offer + strategy

+

+ From price to contingencies and timing, I craft + offers that protect + you and stay competitive — built around the + specific property, + the competition, and what actually matters to + the seller. +

+
+ +
+

Due diligence support

+

+ I help you understand what the inspection and + disclosures actually + mean — so nothing surprises you in escrow. +

+
+ + +
+
+
+ + +
+
+

The La Jolla & + San Diego home buying process

+ +
    +
  1. + +

    Pre-approval & + Planning

    +

    + We start by getting clear on what you want, what + you can spend, + and when you want to move. Not pre-approved yet? + I can help you + understand what to look for and what questions + to ask. +

    +
  2. +
  3. + +

    Search + & showings

    +

    + A focused search through La Jolla, Bird Rock, La + Jolla Shores, + and surrounding San Diego neighborhoods — with + thoughtful showings + so you compare options clearly and move + efficiently when the right + home appears. +

    +
  4. +
  5. + +

    Offer + strategy

    +

    + We craft terms that protect you while staying + competitive in the + San Diego market — including price, + contingencies, timing, and + negotiation approach. +

    +
  6. +
  7. + +

    Inspections + & + contingencies

    +

    + We review disclosures and inspections, then + negotiate repairs or + credits if needed before moving forward. +

    +
  8. +
  9. + +

    Escrow to + keys

    +

    + I coordinate the deadlines, paperwork, and + moving parts so nothing + falls through the cracks between acceptance and + closing day on your + La Jolla or San Diego home. +

    +
  10. +
+
+
+ + +
+ +
+ + +
+
+

Common La Jolla + buyer questions

+ +
+
+ Why work with a buyer's + agent in La Jolla? +
+ The listing agent works for the seller — full + stop. My job is to + work for you. That means helping you figure out + if a La Jolla or + San Diego home is actually worth what they're + asking, reviewing + disclosures so nothing catches you off guard, + structuring an offer + that's competitive without overpaying, and + staying on top of every + deadline through escrow. +
+
+ +
+ Do I need to be pre-approved + before I start looking? +
+ Not necessarily, but it helps a lot — especially + in a competitive + market like La Jolla. Pre-approval tells you + exactly what you can + spend and makes your offer much stronger when + you find the right home. + If you're not there yet, we can start with + strategy and work on it together. +
+
+ +
+ How much should I offer on a + La Jolla home? +
+ The right offer depends on pricing, competition, + condition, and terms. + I'll walk you through a clear strategy so you + understand what matters + most in the La Jolla or San Diego market — and + why. +
+
+ +
+ What happens after my offer + is accepted? +
+ Once you're under contract, the clock starts. We + move into inspections, + disclosures, and contingency deadlines — I'll + track every date and make + sure nothing gets missed between acceptance and + closing. +
+
+ +
+ Can you help me compare La + Jolla neighborhoods? +
+ Yes — and it's one of my favorite conversations + to have. I live in + La Jolla, so I know the coastal neighborhoods + firsthand. Whether + you're weighing La Jolla Village against Bird + Rock, La Jolla Shores, + Windansea, Pacific Beach, or Del Mar, I can walk + you through the real + differences in feel, value, and what you + actually get for the price. + Every neighborhood has tradeoffs — I'll help you + find the one that + fits how you actually want to live. +
+
+
+
+
+ + +
+
+
+
+

Your La Jolla Real Estate + Agent

+

+ Buying a home in La Jolla, Bird Rock, La Jolla + Shores, or anywhere + in San Diego County is one of the biggest + decisions you'll make — + and it shouldn't feel overwhelming. As a La + Jolla REALTOR® with + Coldwell Banker Realty, I walk my clients + through every step with + straight talk, no pressure, and a plan that + actually fits their life. +

+ Schedule + a conversation → +
+
+ Lana Swanson, La Jolla REALTOR® with Coldwell Banker Realty, smiling in a professional setting +
+
+
+
+ + +
+
+

Ready to buy a + home in La Jolla?

+

+ Whether you're searching in La Jolla, Bird Rock, La + Jolla Shores, + or anywhere in San Diego County — tell me what you're + looking for + and I'll help you build a plan and move forward with + confidence. +

+ +
+
+ +
+ + + + + + + + + + diff --git a/dist/contact.html b/dist/contact.html new file mode 100644 index 00000000..ba87491c --- /dev/null +++ b/dist/contact.html @@ -0,0 +1,535 @@ + + + + + + + + + + Contact Lana Swanson | La Jolla REALTOR® | Coldwell Banker + Realty + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main + content + + + +
+ + +
+ + +
+

Contact

+

+ Let's talk about your
next move in San Diego +

+

+ No agenda, no pressure. Whether you're buying or selling + in + La Jolla, Bird Rock, La Jolla Shores, or anywhere in San + Diego + County — if you have questions, I'm easy to reach. +

+
+
+ + +
+
+
+
+

Get in touch

+

+ You don't need to have everything figured out + before reaching out. +

+

+ Whether you're wondering about La Jolla home + values, the right + time to sell in Bird Rock or La Jolla Shores, + how to get started + as a San Diego buyer, or just want to think + through your options — + I'm happy to help. Reach out in whatever way + feels easiest. +

+ +
+
+

Phone/Text

+

+ 858-241-9903 +

+
+
+

Book it + now

+

+ Schedule + a consultation → +

+
+
+

Email

+

+ lanaswanson@cbrealty.com +

+
+
+

Office

+

+ Coldwell Banker Realty La Jolla
+ 888 Prospect St, Suite 140
+ La Jolla, CA 92037 +

+
+
+ +
+

I can help + with:

+
    +
  • Buying a home in La Jolla or San + Diego
  • +
  • Selling your La Jolla, Bird Rock, or La + Jolla Shores home
  • +
  • Scheduling a showing anywhere in San + Diego County
  • +
  • Questions about La Jolla neighborhoods + and market timing
  • +
  • Strategy for buyers and sellers in the + San Diego market
  • +
+
+
+ +
+
+ + + + + +
+ + +
+ +
+ + +
+ +
+ + + Enter a valid + email address, for example + name@example.com +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + + Examples: La + Jolla, Bird Rock, La Jolla Shores, Del + Mar +
+ +
+ + + Enter your + approximate price range, for example + $1M–$2M +
+ +
+ + +
+ +
+ +
+ + +
+
+
+
+
+ + +
+
+

Ways + Lana can help

+
+
+

Buying in La + Jolla

+

+ Looking for the right La Jolla neighborhood — + Bird Rock, + La Jolla Shores, The Village, or Windansea? I + can help you + find the right timing, the right strategy, and + the right home. +

+
+ +
+

Selling in La + Jolla

+

+ If you're thinking about selling your La Jolla + or San Diego home, + I can help you understand your options, current + market conditions, + and what preparation might look like. +

+
+ + +
+
+
+ +
+ + + + + + + + + + + diff --git a/dist/css/styles.css b/dist/css/styles.css index 41cb9d21..d832a645 100644 --- a/dist/css/styles.css +++ b/dist/css/styles.css @@ -1,7 +1,7 @@ @charset "UTF-8"; /*! * Start Bootstrap - Bare v5.0.9 (https://startbootstrap.com/template/bare) -* Copyright 2013-2023 Start Bootstrap +* Copyright 2013-2026 Start Bootstrap * Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-bare/blob/master/LICENSE) */ /*! @@ -74,9 +74,9 @@ --bs-border-radius-2xl: 2rem; --bs-border-radius-pill: 50rem; --bs-link-color: #0d6efd; - --bs-link-hover-color: #0a58ca; + --bs-link-hover-color: rgb(10.4, 88, 202.4); --bs-code-color: #d63384; - --bs-highlight-bg: #fff3cd; + --bs-highlight-bg: rgb(255, 242.6, 205.4); } *, @@ -414,13 +414,15 @@ legend { padding: 0; margin-bottom: 0.5rem; font-size: calc(1.275rem + 0.3vw); - line-height: inherit; } @media (min-width: 1200px) { legend { font-size: 1.5rem; } } +legend { + line-height: inherit; +} legend + * { clear: left; } @@ -493,69 +495,81 @@ progress { .display-1 { font-size: calc(1.625rem + 4.5vw); - font-weight: 300; - line-height: 1.2; } @media (min-width: 1200px) { .display-1 { font-size: 5rem; } } +.display-1 { + font-weight: 300; + line-height: 1.2; +} .display-2 { font-size: calc(1.575rem + 3.9vw); - font-weight: 300; - line-height: 1.2; } @media (min-width: 1200px) { .display-2 { font-size: 4.5rem; } } +.display-2 { + font-weight: 300; + line-height: 1.2; +} .display-3 { font-size: calc(1.525rem + 3.3vw); - font-weight: 300; - line-height: 1.2; } @media (min-width: 1200px) { .display-3 { font-size: 4rem; } } +.display-3 { + font-weight: 300; + line-height: 1.2; +} .display-4 { font-size: calc(1.475rem + 2.7vw); - font-weight: 300; - line-height: 1.2; } @media (min-width: 1200px) { .display-4 { font-size: 3.5rem; } } +.display-4 { + font-weight: 300; + line-height: 1.2; +} .display-5 { font-size: calc(1.425rem + 2.1vw); - font-weight: 300; - line-height: 1.2; } @media (min-width: 1200px) { .display-5 { font-size: 3rem; } } +.display-5 { + font-weight: 300; + line-height: 1.2; +} .display-6 { font-size: calc(1.375rem + 1.5vw); - font-weight: 300; - line-height: 1.2; } @media (min-width: 1200px) { .display-6 { font-size: 2.5rem; } } +.display-6 { + font-weight: 300; + line-height: 1.2; +} .list-unstyled { padding-left: 0; @@ -1815,13 +1829,13 @@ progress { .table-primary { --bs-table-color: #000; - --bs-table-bg: #cfe2ff; - --bs-table-border-color: #bacbe6; - --bs-table-striped-bg: #c5d7f2; + --bs-table-bg: rgb(206.6, 226, 254.6); + --bs-table-border-color: rgb(185.94, 203.4, 229.14); + --bs-table-striped-bg: rgb(196.27, 214.7, 241.87); --bs-table-striped-color: #000; - --bs-table-active-bg: #bacbe6; + --bs-table-active-bg: rgb(185.94, 203.4, 229.14); --bs-table-active-color: #000; - --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-bg: rgb(191.105, 209.05, 235.505); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1829,13 +1843,13 @@ progress { .table-secondary { --bs-table-color: #000; - --bs-table-bg: #e2e3e5; - --bs-table-border-color: #cbccce; - --bs-table-striped-bg: #d7d8da; + --bs-table-bg: rgb(225.6, 227.4, 229); + --bs-table-border-color: rgb(203.04, 204.66, 206.1); + --bs-table-striped-bg: rgb(214.32, 216.03, 217.55); --bs-table-striped-color: #000; - --bs-table-active-bg: #cbccce; + --bs-table-active-bg: rgb(203.04, 204.66, 206.1); --bs-table-active-color: #000; - --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-bg: rgb(208.68, 210.345, 211.825); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1843,13 +1857,13 @@ progress { .table-success { --bs-table-color: #000; - --bs-table-bg: #d1e7dd; - --bs-table-border-color: #bcd0c7; - --bs-table-striped-bg: #c7dbd2; + --bs-table-bg: rgb(209, 231, 220.8); + --bs-table-border-color: rgb(188.1, 207.9, 198.72); + --bs-table-striped-bg: rgb(198.55, 219.45, 209.76); --bs-table-striped-color: #000; - --bs-table-active-bg: #bcd0c7; + --bs-table-active-bg: rgb(188.1, 207.9, 198.72); --bs-table-active-color: #000; - --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-bg: rgb(193.325, 213.675, 204.24); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1857,13 +1871,13 @@ progress { .table-info { --bs-table-color: #000; - --bs-table-bg: #cff4fc; - --bs-table-border-color: #badce3; - --bs-table-striped-bg: #c5e8ef; + --bs-table-bg: rgb(206.6, 244.4, 252); + --bs-table-border-color: rgb(185.94, 219.96, 226.8); + --bs-table-striped-bg: rgb(196.27, 232.18, 239.4); --bs-table-striped-color: #000; - --bs-table-active-bg: #badce3; + --bs-table-active-bg: rgb(185.94, 219.96, 226.8); --bs-table-active-color: #000; - --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-bg: rgb(191.105, 226.07, 233.1); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1871,13 +1885,13 @@ progress { .table-warning { --bs-table-color: #000; - --bs-table-bg: #fff3cd; - --bs-table-border-color: #e6dbb9; - --bs-table-striped-bg: #f2e7c3; + --bs-table-bg: rgb(255, 242.6, 205.4); + --bs-table-border-color: rgb(229.5, 218.34, 184.86); + --bs-table-striped-bg: rgb(242.25, 230.47, 195.13); --bs-table-striped-color: #000; - --bs-table-active-bg: #e6dbb9; + --bs-table-active-bg: rgb(229.5, 218.34, 184.86); --bs-table-active-color: #000; - --bs-table-hover-bg: #ece1be; + --bs-table-hover-bg: rgb(235.875, 224.405, 189.995); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1885,13 +1899,13 @@ progress { .table-danger { --bs-table-color: #000; - --bs-table-bg: #f8d7da; - --bs-table-border-color: #dfc2c4; - --bs-table-striped-bg: #eccccf; + --bs-table-bg: rgb(248, 214.6, 217.8); + --bs-table-border-color: rgb(223.2, 193.14, 196.02); + --bs-table-striped-bg: rgb(235.6, 203.87, 206.91); --bs-table-striped-color: #000; - --bs-table-active-bg: #dfc2c4; + --bs-table-active-bg: rgb(223.2, 193.14, 196.02); --bs-table-active-color: #000; - --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-bg: rgb(229.4, 198.505, 201.465); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1900,12 +1914,12 @@ progress { .table-light { --bs-table-color: #000; --bs-table-bg: #f8f9fa; - --bs-table-border-color: #dfe0e1; - --bs-table-striped-bg: #ecedee; + --bs-table-border-color: rgb(223.2, 224.1, 225); + --bs-table-striped-bg: rgb(235.6, 236.55, 237.5); --bs-table-striped-color: #000; - --bs-table-active-bg: #dfe0e1; + --bs-table-active-bg: rgb(223.2, 224.1, 225); --bs-table-active-color: #000; - --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-bg: rgb(229.4, 230.325, 231.25); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1914,12 +1928,12 @@ progress { .table-dark { --bs-table-color: #fff; --bs-table-bg: #212529; - --bs-table-border-color: #373b3e; - --bs-table-striped-bg: #2c3034; + --bs-table-border-color: rgb(55.2, 58.8, 62.4); + --bs-table-striped-bg: rgb(44.1, 47.9, 51.7); --bs-table-striped-color: #fff; - --bs-table-active-bg: #373b3e; + --bs-table-active-bg: rgb(55.2, 58.8, 62.4); --bs-table-active-color: #fff; - --bs-table-hover-bg: #323539; + --bs-table-hover-bg: rgb(49.65, 53.35, 57.05); --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2021,7 +2035,7 @@ progress { .form-control:focus { color: #212529; background-color: #fff; - border-color: #86b7fe; + border-color: rgb(134, 182.5, 254); outline: 0; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } @@ -2043,8 +2057,7 @@ progress { .form-control::file-selector-button { padding: 0.375rem 0.75rem; margin: -0.375rem -0.75rem; - -webkit-margin-end: 0.75rem; - margin-inline-end: 0.75rem; + margin-inline-end: 0.75rem; color: #212529; background-color: #e9ecef; pointer-events: none; @@ -2061,7 +2074,7 @@ progress { } } .form-control:hover:not(:disabled):not([readonly])::file-selector-button { - background-color: #dde0e3; + background-color: rgb(221.35, 224.2, 227.05); } .form-control-plaintext { @@ -2092,8 +2105,7 @@ progress { .form-control-sm::file-selector-button { padding: 0.25rem 0.5rem; margin: -0.25rem -0.5rem; - -webkit-margin-end: 0.5rem; - margin-inline-end: 0.5rem; + margin-inline-end: 0.5rem; } .form-control-lg { @@ -2105,8 +2117,7 @@ progress { .form-control-lg::file-selector-button { padding: 0.5rem 1rem; margin: -0.5rem -1rem; - -webkit-margin-end: 1rem; - margin-inline-end: 1rem; + margin-inline-end: 1rem; } textarea.form-control { @@ -2158,17 +2169,19 @@ textarea.form-control-lg { border: 1px solid #ced4da; border-radius: 0.375rem; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; } @media (prefers-reduced-motion: reduce) { .form-select { transition: none; } } +.form-select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} .form-select:focus { - border-color: #86b7fe; + border-color: rgb(134, 182.5, 254); outline: 0; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } @@ -2248,7 +2261,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #86b7fe; + border-color: rgb(134, 182.5, 254); outline: 0; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } @@ -2294,7 +2307,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28134, 182.5, 254%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2355,8 +2368,6 @@ textarea.form-control-lg { border-radius: 1rem; -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -webkit-appearance: none; - appearance: none; } @media (prefers-reduced-motion: reduce) { .form-range::-webkit-slider-thumb { @@ -2364,8 +2375,12 @@ textarea.form-control-lg { transition: none; } } +.form-range::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; +} .form-range::-webkit-slider-thumb:active { - background-color: #b6d4fe; + background-color: rgb(182.4, 211.5, 254.4); } .form-range::-webkit-slider-runnable-track { width: 100%; @@ -2384,8 +2399,6 @@ textarea.form-control-lg { border-radius: 1rem; -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -moz-appearance: none; - appearance: none; } @media (prefers-reduced-motion: reduce) { .form-range::-moz-range-thumb { @@ -2393,8 +2406,12 @@ textarea.form-control-lg { transition: none; } } +.form-range::-moz-range-thumb { + -moz-appearance: none; + appearance: none; +} .form-range::-moz-range-thumb:active { - background-color: #b6d4fe; + background-color: rgb(182.4, 211.5, 254.4); } .form-range::-moz-range-track { width: 100%; @@ -2848,12 +2865,12 @@ textarea.form-control-lg { --bs-btn-bg: #0d6efd; --bs-btn-border-color: #0d6efd; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #0b5ed7; - --bs-btn-hover-border-color: #0a58ca; + --bs-btn-hover-bg: rgb(11.05, 93.5, 215.05); + --bs-btn-hover-border-color: rgb(10.4, 88, 202.4); --bs-btn-focus-shadow-rgb: 49, 132, 253; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #0a58ca; - --bs-btn-active-border-color: #0a53be; + --bs-btn-active-bg: rgb(10.4, 88, 202.4); + --bs-btn-active-border-color: rgb(9.75, 82.5, 189.75); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #0d6efd; @@ -2865,12 +2882,12 @@ textarea.form-control-lg { --bs-btn-bg: #6c757d; --bs-btn-border-color: #6c757d; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #5c636a; - --bs-btn-hover-border-color: #565e64; + --bs-btn-hover-bg: rgb(91.8, 99.45, 106.25); + --bs-btn-hover-border-color: rgb(86.4, 93.6, 100); --bs-btn-focus-shadow-rgb: 130, 138, 145; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #565e64; - --bs-btn-active-border-color: #51585e; + --bs-btn-active-bg: rgb(86.4, 93.6, 100); + --bs-btn-active-border-color: rgb(81, 87.75, 93.75); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #6c757d; @@ -2882,12 +2899,12 @@ textarea.form-control-lg { --bs-btn-bg: #198754; --bs-btn-border-color: #198754; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #157347; - --bs-btn-hover-border-color: #146c43; + --bs-btn-hover-bg: rgb(21.25, 114.75, 71.4); + --bs-btn-hover-border-color: rgb(20, 108, 67.2); --bs-btn-focus-shadow-rgb: 60, 153, 110; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #146c43; - --bs-btn-active-border-color: #13653f; + --bs-btn-active-bg: rgb(20, 108, 67.2); + --bs-btn-active-border-color: rgb(18.75, 101.25, 63); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #198754; @@ -2899,12 +2916,12 @@ textarea.form-control-lg { --bs-btn-bg: #0dcaf0; --bs-btn-border-color: #0dcaf0; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #31d2f2; - --bs-btn-hover-border-color: #25cff2; + --bs-btn-hover-bg: rgb(49.3, 209.95, 242.25); + --bs-btn-hover-border-color: rgb(37.2, 207.3, 241.5); --bs-btn-focus-shadow-rgb: 11, 172, 204; --bs-btn-active-color: #000; - --bs-btn-active-bg: #3dd5f3; - --bs-btn-active-border-color: #25cff2; + --bs-btn-active-bg: rgb(61.4, 212.6, 243); + --bs-btn-active-border-color: rgb(37.2, 207.3, 241.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #0dcaf0; @@ -2916,12 +2933,12 @@ textarea.form-control-lg { --bs-btn-bg: #ffc107; --bs-btn-border-color: #ffc107; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ffca2c; - --bs-btn-hover-border-color: #ffc720; + --bs-btn-hover-bg: rgb(255, 202.3, 44.2); + --bs-btn-hover-border-color: rgb(255, 199.2, 31.8); --bs-btn-focus-shadow-rgb: 217, 164, 6; --bs-btn-active-color: #000; - --bs-btn-active-bg: #ffcd39; - --bs-btn-active-border-color: #ffc720; + --bs-btn-active-bg: rgb(255, 205.4, 56.6); + --bs-btn-active-border-color: rgb(255, 199.2, 31.8); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #ffc107; @@ -2933,12 +2950,12 @@ textarea.form-control-lg { --bs-btn-bg: #dc3545; --bs-btn-border-color: #dc3545; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #bb2d3b; - --bs-btn-hover-border-color: #b02a37; + --bs-btn-hover-bg: rgb(187, 45.05, 58.65); + --bs-btn-hover-border-color: rgb(176, 42.4, 55.2); --bs-btn-focus-shadow-rgb: 225, 83, 97; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #b02a37; - --bs-btn-active-border-color: #a52834; + --bs-btn-active-bg: rgb(176, 42.4, 55.2); + --bs-btn-active-border-color: rgb(165, 39.75, 51.75); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #dc3545; @@ -2950,12 +2967,12 @@ textarea.form-control-lg { --bs-btn-bg: #f8f9fa; --bs-btn-border-color: #f8f9fa; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #d3d4d5; - --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-hover-bg: rgb(210.8, 211.65, 212.5); + --bs-btn-hover-border-color: rgb(198.4, 199.2, 200); --bs-btn-focus-shadow-rgb: 211, 212, 213; --bs-btn-active-color: #000; - --bs-btn-active-bg: #c6c7c8; - --bs-btn-active-border-color: #babbbc; + --bs-btn-active-bg: rgb(198.4, 199.2, 200); + --bs-btn-active-border-color: rgb(186, 186.75, 187.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #f8f9fa; @@ -2967,12 +2984,12 @@ textarea.form-control-lg { --bs-btn-bg: #212529; --bs-btn-border-color: #212529; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #424649; - --bs-btn-hover-border-color: #373b3e; + --bs-btn-hover-bg: rgb(66.3, 69.7, 73.1); + --bs-btn-hover-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-focus-shadow-rgb: 66, 70, 73; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #4d5154; - --bs-btn-active-border-color: #373b3e; + --bs-btn-active-bg: rgb(77.4, 80.6, 83.8); + --bs-btn-active-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #212529; @@ -3231,7 +3248,7 @@ textarea.form-control-lg { --bs-dropdown-divider-margin-y: 0.5rem; --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); --bs-dropdown-link-color: #212529; - --bs-dropdown-link-hover-color: #1e2125; + --bs-dropdown-link-hover-color: rgb(29.7, 33.3, 36.9); --bs-dropdown-link-hover-bg: #e9ecef; --bs-dropdown-link-active-color: #fff; --bs-dropdown-link-active-bg: #0d6efd; @@ -4346,13 +4363,13 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-focus-border-color: #86b7fe; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%2811.7, 99, 227.7%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-border-color: rgb(134, 182.5, 254); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; - --bs-accordion-active-color: #0c63e4; - --bs-accordion-active-bg: #e7f1ff; + --bs-accordion-active-color: rgb(11.7, 99, 227.7); + --bs-accordion-active-bg: rgb(230.8, 240.5, 254.8); } .accordion-button { @@ -4656,75 +4673,75 @@ textarea.form-control-lg { } .alert-primary { - --bs-alert-color: #084298; - --bs-alert-bg: #cfe2ff; - --bs-alert-border-color: #b6d4fe; + --bs-alert-color: rgb(7.8, 66, 151.8); + --bs-alert-bg: rgb(206.6, 226, 254.6); + --bs-alert-border-color: rgb(182.4, 211.5, 254.4); } .alert-primary .alert-link { - color: #06357a; + color: rgb(6.24, 52.8, 121.44); } .alert-secondary { - --bs-alert-color: #41464b; - --bs-alert-bg: #e2e3e5; - --bs-alert-border-color: #d3d6d8; + --bs-alert-color: rgb(64.8, 70.2, 75); + --bs-alert-bg: rgb(225.6, 227.4, 229); + --bs-alert-border-color: rgb(210.9, 213.6, 216); } .alert-secondary .alert-link { - color: #34383c; + color: rgb(51.84, 56.16, 60); } .alert-success { - --bs-alert-color: #0f5132; - --bs-alert-bg: #d1e7dd; - --bs-alert-border-color: #badbcc; + --bs-alert-color: rgb(15, 81, 50.4); + --bs-alert-bg: rgb(209, 231, 220.8); + --bs-alert-border-color: rgb(186, 219, 203.7); } .alert-success .alert-link { - color: #0c4128; + color: rgb(12, 64.8, 40.32); } .alert-info { - --bs-alert-color: #055160; - --bs-alert-bg: #cff4fc; - --bs-alert-border-color: #b6effb; + --bs-alert-color: rgb(5.2, 80.8, 96); + --bs-alert-bg: rgb(206.6, 244.4, 252); + --bs-alert-border-color: rgb(182.4, 239.1, 250.5); } .alert-info .alert-link { - color: #04414d; + color: rgb(4.16, 64.64, 76.8); } .alert-warning { - --bs-alert-color: #664d03; - --bs-alert-bg: #fff3cd; - --bs-alert-border-color: #ffecb5; + --bs-alert-color: rgb(102, 77.2, 2.8); + --bs-alert-bg: rgb(255, 242.6, 205.4); + --bs-alert-border-color: rgb(255, 236.4, 180.6); } .alert-warning .alert-link { - color: #523e02; + color: rgb(81.6, 61.76, 2.24); } .alert-danger { - --bs-alert-color: #842029; - --bs-alert-bg: #f8d7da; - --bs-alert-border-color: #f5c2c7; + --bs-alert-color: rgb(132, 31.8, 41.4); + --bs-alert-bg: rgb(248, 214.6, 217.8); + --bs-alert-border-color: rgb(244.5, 194.4, 199.2); } .alert-danger .alert-link { - color: #6a1a21; + color: rgb(105.6, 25.44, 33.12); } .alert-light { - --bs-alert-color: #636464; - --bs-alert-bg: #fefefe; - --bs-alert-border-color: #fdfdfe; + --bs-alert-color: rgb(99.2, 99.6, 100); + --bs-alert-bg: rgb(253.6, 253.8, 254); + --bs-alert-border-color: rgb(252.9, 253.2, 253.5); } .alert-light .alert-link { - color: #4f5050; + color: rgb(79.36, 79.68, 80); } .alert-dark { - --bs-alert-color: #141619; - --bs-alert-bg: #d3d3d4; - --bs-alert-border-color: #bcbebf; + --bs-alert-color: rgb(19.8, 22.2, 24.6); + --bs-alert-bg: rgb(210.6, 211.4, 212.2); + --bs-alert-border-color: rgb(188.4, 189.6, 190.8); } .alert-dark .alert-link { - color: #101214; + color: rgb(15.84, 17.76, 19.68); } @keyframes progress-bar-stripes { @@ -5020,115 +5037,115 @@ textarea.form-control-lg { } .list-group-item-primary { - color: #084298; - background-color: #cfe2ff; + color: rgb(7.8, 66, 151.8); + background-color: rgb(206.6, 226, 254.6); } .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { - color: #084298; - background-color: #bacbe6; + color: rgb(7.8, 66, 151.8); + background-color: rgb(185.94, 203.4, 229.14); } .list-group-item-primary.list-group-item-action.active { color: #fff; - background-color: #084298; - border-color: #084298; + background-color: rgb(7.8, 66, 151.8); + border-color: rgb(7.8, 66, 151.8); } .list-group-item-secondary { - color: #41464b; - background-color: #e2e3e5; + color: rgb(64.8, 70.2, 75); + background-color: rgb(225.6, 227.4, 229); } .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { - color: #41464b; - background-color: #cbccce; + color: rgb(64.8, 70.2, 75); + background-color: rgb(203.04, 204.66, 206.1); } .list-group-item-secondary.list-group-item-action.active { color: #fff; - background-color: #41464b; - border-color: #41464b; + background-color: rgb(64.8, 70.2, 75); + border-color: rgb(64.8, 70.2, 75); } .list-group-item-success { - color: #0f5132; - background-color: #d1e7dd; + color: rgb(15, 81, 50.4); + background-color: rgb(209, 231, 220.8); } .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { - color: #0f5132; - background-color: #bcd0c7; + color: rgb(15, 81, 50.4); + background-color: rgb(188.1, 207.9, 198.72); } .list-group-item-success.list-group-item-action.active { color: #fff; - background-color: #0f5132; - border-color: #0f5132; + background-color: rgb(15, 81, 50.4); + border-color: rgb(15, 81, 50.4); } .list-group-item-info { - color: #055160; - background-color: #cff4fc; + color: rgb(5.2, 80.8, 96); + background-color: rgb(206.6, 244.4, 252); } .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { - color: #055160; - background-color: #badce3; + color: rgb(5.2, 80.8, 96); + background-color: rgb(185.94, 219.96, 226.8); } .list-group-item-info.list-group-item-action.active { color: #fff; - background-color: #055160; - border-color: #055160; + background-color: rgb(5.2, 80.8, 96); + border-color: rgb(5.2, 80.8, 96); } .list-group-item-warning { - color: #664d03; - background-color: #fff3cd; + color: rgb(102, 77.2, 2.8); + background-color: rgb(255, 242.6, 205.4); } .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { - color: #664d03; - background-color: #e6dbb9; + color: rgb(102, 77.2, 2.8); + background-color: rgb(229.5, 218.34, 184.86); } .list-group-item-warning.list-group-item-action.active { color: #fff; - background-color: #664d03; - border-color: #664d03; + background-color: rgb(102, 77.2, 2.8); + border-color: rgb(102, 77.2, 2.8); } .list-group-item-danger { - color: #842029; - background-color: #f8d7da; + color: rgb(132, 31.8, 41.4); + background-color: rgb(248, 214.6, 217.8); } .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { - color: #842029; - background-color: #dfc2c4; + color: rgb(132, 31.8, 41.4); + background-color: rgb(223.2, 193.14, 196.02); } .list-group-item-danger.list-group-item-action.active { color: #fff; - background-color: #842029; - border-color: #842029; + background-color: rgb(132, 31.8, 41.4); + border-color: rgb(132, 31.8, 41.4); } .list-group-item-light { - color: #636464; - background-color: #fefefe; + color: rgb(99.2, 99.6, 100); + background-color: rgb(253.6, 253.8, 254); } .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { - color: #636464; - background-color: #e5e5e5; + color: rgb(99.2, 99.6, 100); + background-color: rgb(228.24, 228.42, 228.6); } .list-group-item-light.list-group-item-action.active { color: #fff; - background-color: #636464; - border-color: #636464; + background-color: rgb(99.2, 99.6, 100); + border-color: rgb(99.2, 99.6, 100); } .list-group-item-dark { - color: #141619; - background-color: #d3d3d4; + color: rgb(19.8, 22.2, 24.6); + background-color: rgb(210.6, 211.4, 212.2); } .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { - color: #141619; - background-color: #bebebf; + color: rgb(19.8, 22.2, 24.6); + background-color: rgb(189.54, 190.26, 190.98); } .list-group-item-dark.list-group-item-action.active { color: #fff; - background-color: #141619; - border-color: #141619; + background-color: rgb(19.8, 22.2, 24.6); + border-color: rgb(19.8, 22.2, 24.6); } .btn-close { @@ -5274,13 +5291,15 @@ textarea.form-control-lg { } .modal.fade .modal-dialog { transition: transform 0.3s ease-out; - transform: translate(0, -50px); } @media (prefers-reduced-motion: reduce) { .modal.fade .modal-dialog { transition: none; } } +.modal.fade .modal-dialog { + transform: translate(0, -50px); +} .modal.show .modal-dialog { transform: none; } @@ -5641,7 +5660,7 @@ textarea.form-control-lg { --bs-popover-header-padding-y: 0.5rem; --bs-popover-header-font-size: 1rem; --bs-popover-header-color: ; - --bs-popover-header-bg: #f0f0f0; + --bs-popover-header-bg: rgb(239.7, 239.7, 239.7); --bs-popover-body-padding-x: 1rem; --bs-popover-body-padding-y: 1rem; --bs-popover-body-color: #212529; @@ -5808,8 +5827,7 @@ textarea.form-control-lg { float: left; width: 100%; margin-right: -100%; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; + backface-visibility: hidden; transition: transform 0.6s ease-in-out; } @media (prefers-reduced-motion: reduce) { @@ -6092,8 +6110,6 @@ textarea.form-control-lg { border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(-100%); } -} -@media (max-width: 575.98px) { .offcanvas-sm.offcanvas-end { top: 0; right: 0; @@ -6101,8 +6117,6 @@ textarea.form-control-lg { border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(100%); } -} -@media (max-width: 575.98px) { .offcanvas-sm.offcanvas-top { top: 0; right: 0; @@ -6112,8 +6126,6 @@ textarea.form-control-lg { border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(-100%); } -} -@media (max-width: 575.98px) { .offcanvas-sm.offcanvas-bottom { right: 0; left: 0; @@ -6122,13 +6134,9 @@ textarea.form-control-lg { border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(100%); } -} -@media (max-width: 575.98px) { .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { transform: none; } -} -@media (max-width: 575.98px) { .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { visibility: visible; } @@ -6180,8 +6188,6 @@ textarea.form-control-lg { border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(-100%); } -} -@media (max-width: 767.98px) { .offcanvas-md.offcanvas-end { top: 0; right: 0; @@ -6189,8 +6195,6 @@ textarea.form-control-lg { border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(100%); } -} -@media (max-width: 767.98px) { .offcanvas-md.offcanvas-top { top: 0; right: 0; @@ -6200,8 +6204,6 @@ textarea.form-control-lg { border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(-100%); } -} -@media (max-width: 767.98px) { .offcanvas-md.offcanvas-bottom { right: 0; left: 0; @@ -6210,13 +6212,9 @@ textarea.form-control-lg { border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(100%); } -} -@media (max-width: 767.98px) { .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { transform: none; } -} -@media (max-width: 767.98px) { .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { visibility: visible; } @@ -6268,8 +6266,6 @@ textarea.form-control-lg { border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(-100%); } -} -@media (max-width: 991.98px) { .offcanvas-lg.offcanvas-end { top: 0; right: 0; @@ -6277,8 +6273,6 @@ textarea.form-control-lg { border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(100%); } -} -@media (max-width: 991.98px) { .offcanvas-lg.offcanvas-top { top: 0; right: 0; @@ -6288,8 +6282,6 @@ textarea.form-control-lg { border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(-100%); } -} -@media (max-width: 991.98px) { .offcanvas-lg.offcanvas-bottom { right: 0; left: 0; @@ -6298,13 +6290,9 @@ textarea.form-control-lg { border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(100%); } -} -@media (max-width: 991.98px) { .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { transform: none; } -} -@media (max-width: 991.98px) { .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { visibility: visible; } @@ -6356,8 +6344,6 @@ textarea.form-control-lg { border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(-100%); } -} -@media (max-width: 1199.98px) { .offcanvas-xl.offcanvas-end { top: 0; right: 0; @@ -6365,8 +6351,6 @@ textarea.form-control-lg { border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(100%); } -} -@media (max-width: 1199.98px) { .offcanvas-xl.offcanvas-top { top: 0; right: 0; @@ -6376,8 +6360,6 @@ textarea.form-control-lg { border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(-100%); } -} -@media (max-width: 1199.98px) { .offcanvas-xl.offcanvas-bottom { right: 0; left: 0; @@ -6386,13 +6368,9 @@ textarea.form-control-lg { border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(100%); } -} -@media (max-width: 1199.98px) { .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { transform: none; } -} -@media (max-width: 1199.98px) { .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { visibility: visible; } @@ -6444,8 +6422,6 @@ textarea.form-control-lg { border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(-100%); } -} -@media (max-width: 1399.98px) { .offcanvas-xxl.offcanvas-end { top: 0; right: 0; @@ -6453,8 +6429,6 @@ textarea.form-control-lg { border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(100%); } -} -@media (max-width: 1399.98px) { .offcanvas-xxl.offcanvas-top { top: 0; right: 0; @@ -6464,8 +6438,6 @@ textarea.form-control-lg { border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(-100%); } -} -@media (max-width: 1399.98px) { .offcanvas-xxl.offcanvas-bottom { right: 0; left: 0; @@ -6474,13 +6446,9 @@ textarea.form-control-lg { border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(100%); } -} -@media (max-width: 1399.98px) { .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { transform: none; } -} -@media (max-width: 1399.98px) { .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { visibility: visible; } @@ -6698,56 +6666,56 @@ textarea.form-control-lg { color: #0d6efd !important; } .link-primary:hover, .link-primary:focus { - color: #0a58ca !important; + color: rgb(10.4, 88, 202.4) !important; } .link-secondary { color: #6c757d !important; } .link-secondary:hover, .link-secondary:focus { - color: #565e64 !important; + color: rgb(86.4, 93.6, 100) !important; } .link-success { color: #198754 !important; } .link-success:hover, .link-success:focus { - color: #146c43 !important; + color: rgb(20, 108, 67.2) !important; } .link-info { color: #0dcaf0 !important; } .link-info:hover, .link-info:focus { - color: #3dd5f3 !important; + color: rgb(61.4, 212.6, 243) !important; } .link-warning { color: #ffc107 !important; } .link-warning:hover, .link-warning:focus { - color: #ffcd39 !important; + color: rgb(255, 205.4, 56.6) !important; } .link-danger { color: #dc3545 !important; } .link-danger:hover, .link-danger:focus { - color: #b02a37 !important; + color: rgb(176, 42.4, 55.2) !important; } .link-light { color: #f8f9fa !important; } .link-light:hover, .link-light:focus { - color: #f9fafb !important; + color: rgb(249.4, 250.2, 251) !important; } .link-dark { color: #212529 !important; } .link-dark:hover, .link-dark:focus { - color: #1a1e21 !important; + color: rgb(26.4, 29.6, 32.8) !important; } .ratio { @@ -10823,4 +10791,1604 @@ textarea.form-control-lg { .d-print-none { display: none !important; } +} +/* ========================================================= + LANA SWANSON SITE STYLES (CONSOLIDATED) + --------------------------------------------------------- + Cleaned + organized into: + 1. Tokens + 2. Base / reset + 3. Shared layout + 4. Header / navigation + 5. Shared components + 6. Shared hero system + 7. Shared page sections + 8. Page-specific overrides + + Page scoping: + body.page--home + body.page--buyers + body.page--sellers + body.page--resources + body.page--listings + body.page--contact +========================================================= */ +/* ========================================================= + 1. TOKENS +========================================================= */ +:root { + --ink: #2f2c29; + --text: #6f6a65; + --muted: #8b847d; + --muted-2: #c2bbb1; + --surface: #ffffff; + --surface-soft: #f8f6f3; + --surface-warm: #f5f2ed; + --surface-beige: #f3eee6; + --rule: rgba(43, 42, 40, 0.14); + --rule-strong: rgba(43, 42, 40, 0.20); + --line: rgba(0, 0, 0, 0.08); + --brand-blue: #1e4fa3; + --brand-blue-bright: #03236c; + --brand-blue-soft: rgba(30, 79, 163, 0.4); + --brand-blue-dark: #03236c; + --shadow-soft: 0 8px 24px rgba(43, 42, 40, 0.04); + --shadow-card: 0 14px 34px rgba(43, 42, 40, 0.08); + --shadow-panel: 0 20px 50px rgba(0, 0, 0, 0.06); + --font-sans: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + --font-serif: "Playfair Display", serif; + --radius-sm: 6px; + --radius-pill: 999px; + --container: 1100px; +} + +/* ========================================================= + 2. BASE / RESET +========================================================= */ +html, +body { + margin: 0; + padding: 0; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.65; + color: var(--text); + background: var(--surface); + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; +} + +img { + max-width: 100%; + display: block; +} + +a { + color: inherit; + text-decoration: none; +} + +h1, .h1, +h2, +.h2, +h3, +.h3, +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin: 0; + color: var(--ink); + font-family: var(--font-serif); + font-weight: 400; +} + +.visually-hidden-focusable { + position: absolute; + left: -9999px; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; +} + +.visually-hidden-focusable:focus { + left: 16px; + top: 16px; + width: auto; + height: auto; + padding: 10px 14px; + background: #fff; + color: var(--ink); + border: 1px solid var(--rule); + z-index: 9999; +} + +.hidden { + display: none; +} + +.page-main { + width: 100%; +} + +/* ========================================================= + 3. SHARED LAYOUT +========================================================= */ +.approach { + padding: 80px 24px; +} +.approach .container { + max-width: 1100px; + margin: 0 auto; +} +.approach__grid { + display: grid; + grid-template-columns: 1.1fr 0.9fr; + gap: 56px; + align-items: center; +} +@media (max-width: 900px) { + .approach__grid { + grid-template-columns: 1fr; + gap: 40px; + } +} +.approach__content h2, .approach__content .h2 { + font-family: "Playfair Display", serif; + font-size: clamp(32px, 3vw, 48px); + line-height: 1.2; + margin-bottom: 20px; + color: #2f2b28; +} +.approach__content h2::after, .approach__content .h2::after { + content: ""; + display: block; + width: 70px; + height: 1px; + background: #d6d1cb; + margin-top: 18px; +} +.approach__content p { + font-size: 18px; + line-height: 1.7; + color: #6f6a65; + max-width: 480px; +} +.approach__image img { + width: 100%; + height: auto; + border-radius: 6px; + display: block; + border-radius: 10px; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08); + max-width: 520px; +} +.approach.reverse .approach__image img { + width: auto; + max-height: 520px; +} + +.section__inner, +.site-footer__inner { + width: min(var(--container), 100% - 48px); + margin: 0 auto; +} + +.section { + width: 100%; + padding: clamp(56px, 8vw, 108px) 0; + background: var(--surface); +} + +.section--intro { + padding-top: clamp(52px, 7vw, 84px); + padding-bottom: clamp(42px, 5vw, 64px); +} + +.section__title { + margin: 0 0 16px; + font-size: clamp(30px, 3vw, 46px); + line-height: 1.12; + text-align: center; + text-wrap: balance; +} + +.section__title--left { + text-align: left; +} + +.section__lede { + max-width: 760px; + margin: 0 auto; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + text-align: center; + color: var(--text); + text-wrap: pretty; +} +.section__lede a { + color: var(--brand-blue); +} + +.section__lede--left { + max-width: 680px; + margin: 0; + text-align: left; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +/* ========================================================= + 4. HEADER / NAVIGATION +========================================================= */ +.site-header { + width: 100%; + background: #fff; + box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06); +} + +.site-logo { + display: flex; + align-items: center; +} + +.site-logo .logo { + height: 75px; + width: auto; +} + +.site-logo .logo--mobile { + display: none; +} + +.dropdown-item { + --bs-dropdown-link-hover-bg: #edf1f3; + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #edf1f3; +} + +.navbar-expand-lg .navbar-nav .dropdown-menu { + padding: 0; +} +.navbar-expand-lg .navbar-nav .dropdown-menu li { + margin: 10px; +} +.navbar-expand-lg .navbar-nav .dropdown-divider { + margin: 0; + padding: 0; +} + +.navbar { + display: flex; + gap: 32px; +} +.navbar a { + position: relative; + text-decoration: none; + color: #7a7a7a; + font-weight: 500; + letter-spacing: 0.06em; + padding-bottom: 6px; + transition: color 0.2s ease; + font-size: 11px; +} +.navbar a:hover { + color: #4a4a4a; +} +.navbar a.active { + color: #00205B; +} +.navbar a.active::after { + content: ""; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 1px; + background-color: #00205B; +} + +.navbar-collapse { + position: relative; + text-transform: uppercase; + font-weight: 400; + font-size: 16px; + letter-spacing: 2px; + z-index: 2; +} + +.navbar-nav .show > .nav-link, +.navbar-nav .nav-link.active { + color: var(--brand-blue); +} + +.nav-link { + font-size: 11px; + letter-spacing: 0.07em; +} + +.navbar-collapse .navbar-nav { + position: relative; + bottom: 5px; + background-color: white; +} + +.navbar-collapse .navbar-nav .nav-item { + padding: 20px 10px 15px; +} + +/* ========================================================= + 5. SHARED COMPONENTS +========================================================= */ +/* Buttons */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 46px; + padding: 12px 18px; + border-radius: 4px; + text-decoration: none; + font-family: var(--font-sans); + font-size: 13px; + font-weight: 500; + letter-spacing: 0.09em; + text-transform: uppercase; + transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease; +} + +.btn:hover { + transform: translateY(-1px); +} + +.btn--primary { + background: var(--brand-blue-bright); + color: #fff; + border: 1px solid rgba(0, 0, 0, 0.08); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06); +} + +.btn--primary:hover, +.btn--primary:active, +.btn--primary:focus { + background: #03236c !important; + color: #fff !important; +} + +.btn--secondary { + background: white; + color: var(--brand-blue); + border: 1px solid var(--brand-blue-soft); +} +.btn--secondary:hover, .btn--secondary:active, .btn--secondary:focus { + background: rgba(30, 79, 163, 0.04) !important; + border-color: var(--brand-blue) !important; + color: white !important; +} + +/* Shared value cards */ +.value-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 18px; + margin-top: 50px; +} + +.value-card { + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + padding: 26px 24px 22px; +} +.value-card .btn--secondary:hover { + background: #03236c !important; + color: white !important; +} + +.value-card__title { + margin: 0 0 10px; + font-size: 28px; + line-height: 1.15; +} + +.value-card__text { + margin: 0; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.75; + color: var(--text); +} + +.value-card--featured { + grid-column: 1/-1; + max-width: 720px; + margin: 0 auto; +} + +/* Shared resource cards */ +.resource-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 18px; + margin-top: 34px; +} + +.resource-grid--three { + grid-template-columns: repeat(3, minmax(0, 1fr)); + margin-top: 0; +} + +.resource-card { + display: block; + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + padding: 24px 22px; + text-decoration: none; + border: 1px solid #e6e3df; + border-radius: 8px; + transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease; +} + +.resource-card::after { + content: "PDF"; + font-size: 11px; + letter-spacing: 0.08em; + text-transform: uppercase; + opacity: 0.5; +} + +.resource-card:hover { + transform: translateY(-2px); + border-color: var(--rule-strong); + box-shadow: var(--shadow-soft); +} + +.resource-card__eyebrow { + margin: 0 0 8px; + font-family: var(--font-sans); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.12em; + text-transform: uppercase; + color: var(--muted); +} + +.resource-card__actions { + display: flex; + gap: 16px; + margin-top: 16px; +} + +.resource-card__link { + font-size: 0.72rem; + font-weight: 500; + letter-spacing: 0.1em; + text-transform: uppercase; + color: var(--navy, #1b2a4a); + text-decoration: none; + border-bottom: 1px solid currentColor; + padding-bottom: 2px; + transition: opacity 0.2s; +} + +.resource-card__link:hover { + opacity: 0.6; +} + +.resource-card__title { + margin: 0 0 8px; + font-size: 24px; + line-height: 1.18; +} + +.resource-card__text { + margin: 0; + font-family: var(--font-sans); + font-size: 15px; + line-height: 1.75; + color: var(--text); +} + +/* Shared FAQ */ +.faq { + max-width: 860px; + margin: 34px auto 0; +} + +.faq__item { + border-top: 1px solid var(--rule); +} + +.faq__item:last-child { + border-bottom: 1px solid var(--rule); +} + +.faq__q { + list-style: none; + cursor: pointer; + position: relative; + padding: 20px 0 20px 28px; + font-size: 20px; + line-height: 1.2; +} + +.faq__q::-webkit-details-marker { + display: none; +} + +.faq__q::before { + content: "+"; + position: absolute; + left: 0; + top: 20px; + font-family: var(--font-sans); + font-size: 18px; + line-height: 1; + color: var(--muted); +} + +.faq__item[open] .faq__q::before { + content: "–"; +} + +.faq__a { + padding: 0 0 20px 28px; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + color: var(--text); +} + +/* Shared CTA band */ +.cta-band { + background: #fff; + border-top: 1px solid var(--rule); + padding: clamp(56px, 7vw, 92px) 0; +} + +.cta-band__inner { + width: min(760px, 100% - 48px); + margin: 0 auto; + text-align: center; +} + +.cta-band__title { + margin: 0 0 12px; + font-size: clamp(30px, 3vw, 44px); + line-height: 1.12; + text-wrap: balance; +} + +.cta-band__text { + margin: 0; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + color: var(--text); + text-wrap: pretty; +} + +.cta-band__actions { + margin-top: 24px; + display: flex; + gap: 12px; + justify-content: center; + align-items: center; + flex-wrap: wrap; +} +.cta-band__actions .btn--secondary:hover { + background: #03236c !important; + color: white !important; +} + +/* Footer */ +.site-footer { + background: #fff; + border-top: 1px solid rgba(43, 42, 40, 0.1); +} + +.site-footer__inner { + padding: 22px 0 28px; +} + +.site-footer__fineprint { + margin: 0; + text-align: center; + font-family: var(--font-sans); + font-size: 12px; + line-height: 1.7; + letter-spacing: 0.06em; + text-transform: uppercase; + color: rgba(111, 106, 101, 0.88); +} + +.site-footer__fineprint a { + color: inherit; + text-decoration: none; +} + +.site-footer__fineprint a:hover { + color: var(--brand-blue); +} + +/* ========================================================= + 6. SHARED HERO SYSTEM +========================================================= */ +.page-hero { + position: relative; + width: 100%; + min-height: clamp(520px, 76vh, 860px); + overflow: hidden; + isolation: isolate; + position: relative; + max-height: 720px; + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; +} + +@media (max-width: 767px) { + .page-hero { + min-height: 520px; + padding: 32px 0; + display: flex; + align-items: center; + justify-content: center; + } + .page-hero__content { + width: calc(100% - 32px); + max-width: 320px; + margin: 0 auto; + padding: 28px 22px; + background: rgba(255, 255, 255, 0.72); + backdrop-filter: blur(6px); + -webkit-backdrop-filter: blur(6px); + border-radius: 8px; + } + .page-hero__eyebrow { + font-size: 11px; + letter-spacing: 0.14em; + margin-bottom: 12px; + } + .page-hero__title { + font-size: clamp(34px, 9vw, 46px); + line-height: 0.98; + margin-bottom: 14px; + } + .page-hero__sub { + font-size: 15px; + line-height: 1.55; + margin: 0; + } +} +.page-hero__media { + position: absolute; + inset: 0; + background-size: cover; + background-position: center center; + background-repeat: no-repeat; + transform: scale(1.01); +} + +.page-hero__overlay { + position: absolute; + inset: 0; + background: linear-gradient(to bottom, rgba(255, 255, 255, 0.56) 0%, rgba(255, 255, 255, 0.24) 42%, rgba(255, 255, 255, 0.08) 100%); + z-index: 1; +} + +.page-hero__content { + position: relative; + z-index: 2; + max-width: 880px; + margin: 0 auto; + padding: clamp(2px, 12vh, 190px) 24px 88px; + text-align: center; + max-width: 620px; + padding: 40px 48px; + background: rgba(255, 255, 255, 0.46); + backdrop-filter: blur(8px); + border-radius: var(--radius-sm); + border: 1px solid rgba(0, 0, 0, 0.05); + box-shadow: var(--shadow-panel); +} + +.page-hero__eyebrow { + margin: 0 0 12px; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.16em; + text-transform: uppercase; + color: rgba(43, 42, 40, 0.56); +} + +.page-hero__title { + margin: 0; + max-width: 12ch; + margin-inline: auto; + font-size: clamp(40px, 3vw, 74px); + line-height: 0.98; + color: var(--ink); + text-wrap: balance; +} + +.page-hero__sub { + margin: 18px auto 0; + max-width: 54ch; + font-family: var(--font-sans); + font-size: 14px; + line-height: 1.8; + color: rgba(43, 42, 40, 0.72); + text-wrap: pretty; +} + +/* ========================================================= + 7. PAGE-SPECIFIC STYLES +========================================================= */ +.section--resources { + background: #edf1f3; +} + +.section--values { + background: #edf1f3; +} + +/* ---------- HOME ---------- */ +body.page--home .page-hero__actions { + justify-content: center; + gap: 14px; +} +body.page--home .page-hero__content .btn { + background: #03236c; + margin-bottom: 10px; +} +body.page--home .page-hero__content .btn:hover { + background: #1c4d96 !important; +} +body.page--home .page-hero__content .btn--secondary { + background: white; + border: 1px solid #d9dce3; +} +body.page--home .page-hero__content h1, body.page--home .page-hero__content .h1 { + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); +} +body.page--home .page-hero__content p { + color: rgba(0, 0, 0, 0.7); + opacity: 0.85; +} +body.page--home .page-hero__content .approach { + padding: 120px 24px; +} +body.page--home .page-hero__content .approach .container { + max-width: 1100px; + margin: 0 auto; +} +body.page--home .page-hero__content .approach__grid { + display: grid; + grid-template-columns: 1.1fr 0.9fr; + gap: 80px; + align-items: center; +} +@media (max-width: 900px) { + body.page--home .page-hero__content .approach__grid { + grid-template-columns: 1fr; + gap: 40px; + } +} +body.page--home .page-hero__content .approach__content h2, body.page--home .page-hero__content .approach__content .h2 { + font-family: "Playfair Display", serif; + font-size: clamp(32px, 3vw, 48px); + line-height: 1.2; + margin-bottom: 20px; + color: #2f2b28; +} +body.page--home .page-hero__content .approach__content p { + font-size: 18px; + line-height: 1.7; + color: #6f6a65; + max-width: 480px; +} +body.page--home .page-hero__content .approach__image img { + width: 100%; + height: auto; + border-radius: 6px; + display: block; +} +body.page--home .section--process { + padding: clamp(56px, 0vw, 108px) 0; +} +body.page--home .page-hero__title { + max-width: 17ch; +} +body.page--home .page-hero__sub { + margin: 30px 0; + font-weight: 500; +} +body.page--home .cta-band__actions { + margin-top: 24px; + display: block; +} +body.page--home .section--intro { + padding-top: clamp(52px, 7vw, 84px); + padding-bottom: clamp(42px, 7vw, 64px); +} + +/* ---------- BUYERS + SELLERS PROCESS CARDS ---------- */ +body.page--buyers .step-list, +body.page--sellers .step-list { + list-style: none; + padding: 0; + margin: 34px 0 0; + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: 18px; +} +body.page--buyers .step, +body.page--sellers .step { + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + padding: 22px 18px; +} +body.page--buyers .step__number, +body.page--sellers .step__number { + font-family: var(--font-sans); + font-size: 11px; + letter-spacing: 0.18em; + text-transform: uppercase; + color: var(--muted); + margin-bottom: 6px; +} +body.page--buyers .step__number::after, +body.page--sellers .step__number::after { + content: ""; + display: block; + width: 26px; + height: 1px; + background: rgba(0, 0, 0, 0.15); + margin-top: 6px; +} +body.page--buyers .step__title, +body.page--sellers .step__title { + margin: 8px 0; + font-size: 22px; + line-height: 1.2; +} +body.page--buyers .step__text, +body.page--sellers .step__text { + margin: 0; + font-family: var(--font-sans); + font-size: 15px; + line-height: 1.7; + color: var(--text); +} + +body.page--buyers .page-hero__overlay { + background: linear-gradient(to bottom, rgba(255, 255, 255, 0.52) 0%, rgba(255, 255, 255, 0.22) 42%, rgba(255, 255, 255, 0.08) 100%); +} +body.page--buyers .page-hero__title { + max-width: 17ch; +} + +body.page--sellers .page-hero__title { + max-width: 18ch; +} + +/* ---------- RESOURCES ---------- */ +body.page--resources .section--anchors { + padding-top: 0; + padding-bottom: 28px; +} +body.page--resources .resource-pills { + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; + gap: 10px; +} +body.page--resources .resource-pill { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 40px; + padding: 10px 16px; + border: 1px solid rgba(30, 79, 163, 0.28); + border-radius: var(--radius-pill); + background: rgba(255, 255, 255, 0.9); + color: var(--brand-blue); + text-decoration: none; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.1em; + text-transform: uppercase; + transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease; +} +body.page--resources .resource-pill:hover { + background: rgba(30, 79, 163, 0.04); + border-color: rgba(30, 79, 163, 0.5); + color: #163d8f; + transform: translateY(-1px); +} +body.page--resources .resource-group__header { + margin-bottom: 28px; +} +body.page--resources .resource-group__eyebrow { + margin: 0 0 8px; + font-family: var(--font-sans); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--muted); +} +body.page--resources .resource-group__lede { + margin: 0; + max-width: 680px; + text-align: left; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + color: var(--text); +} + +/* ---------- LISTINGS ---------- */ +body.page--listings .listing-hero { + background: var(--surface-warm); +} +body.page--listings .listing-hero__grid { + display: grid; + grid-template-columns: 1.2fr 1fr; + min-height: 520px; +} +body.page--listings .listing-hero__media { + min-height: 520px; +} +body.page--listings .listing-hero__media a { + display: block; + height: 100%; +} +body.page--listings .listing-hero__media img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; +} +body.page--listings .listing-hero__content { + display: flex; + flex-direction: column; + justify-content: center; + padding: clamp(36px, 5vw, 64px); + background: var(--surface-warm); +} +body.page--listings .listing-hero__eyebrow { + margin: 0 0 18px; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.18em; + text-transform: uppercase; + color: var(--muted); +} +body.page--listings .listing-hero__title { + margin: 0 0 10px; + font-size: clamp(38px, 3vw, 64px); + line-height: 1.02; + text-wrap: balance; +} +body.page--listings .listing-hero__address { + margin: 0 0 18px; + font-size: clamp(22px, 2.3vw, 32px); + line-height: 1.15; +} +body.page--listings .listing-hero__meta { + display: flex; + flex-wrap: wrap; + gap: 10px 18px; + margin: 0 0 22px; + font-family: var(--font-sans); + font-size: 14px; + font-weight: 500; + letter-spacing: 0.04em; + text-transform: uppercase; + color: #7d766f; +} +body.page--listings .listing-hero__meta span { + position: relative; +} +body.page--listings .listing-hero__meta span:not(:last-child)::after { + content: "•"; + position: absolute; + right: -12px; + top: 0; + color: rgba(125, 118, 111, 0.75); +} +body.page--listings .listing-hero__text { + max-width: 38ch; + margin: 0; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.8; + color: var(--text); +} +body.page--listings .listing-hero__actions { + margin-top: 28px; + display: flex; + gap: 14px; + flex-wrap: wrap; +} +body.page--listings .listing-hero__actions .btn--secondary:hover { + background: #03236c !important; + color: white !important; +} +body.page--listings .listing-text-intro .listing-text p { + margin: 40px; +} +body.page--listings .listing-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 22px; + margin-top: 34px; +} +body.page--listings .listing-card { + display: flex; + flex-direction: column; + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + overflow: hidden; + transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease; +} +body.page--listings .listing-card:hover { + transform: translateY(-3px); + border-color: var(--rule-strong); + box-shadow: var(--shadow-card); +} +body.page--listings .listing-card__image-link { + display: block; + text-decoration: none; + overflow: hidden; +} +body.page--listings .listing-card__image { + width: 100%; + aspect-ratio: 4/3; + -o-object-fit: cover; + object-fit: cover; + transition: transform 260ms ease; +} +body.page--listings .listing-card:hover .listing-card__image { + transform: scale(1.02); +} +body.page--listings .listing-card__body { + display: flex; + flex-direction: column; + padding: 18px 18px 20px; +} +body.page--listings .listing-card__price { + margin: 0 0 4px; + font-family: var(--font-sans); + font-size: 18px; + font-weight: 600; + line-height: 1.3; + color: var(--brand-blue); +} +body.page--listings .listing-card__address { + margin: 0; + font-size: 24px; + line-height: 1.18; + text-wrap: balance; +} +body.page--listings .listing-card__location { + margin: 4px 0 6px; + font-family: var(--font-sans); + font-size: 14px; + line-height: 1.6; + color: var(--muted); +} +body.page--listings .listing-card__details { + margin: 0 0 14px; + font-family: var(--font-sans); + font-size: 14px; + line-height: 1.7; + color: var(--text); +} +body.page--listings .listing-card__link { + display: inline-flex; + align-items: center; + gap: 8px; + margin-top: auto; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.12em; + text-transform: uppercase; + text-decoration: none; + color: var(--brand-blue); +} +body.page--listings .listing-card__link::after { + content: "→"; + font-size: 13px; + line-height: 1; + transition: transform 160ms ease; +} +body.page--listings .listing-card__link:hover::after { + transform: translateX(2px); +} + +/* ---------- CONTACT ---------- */ +body.page--contact .contact-layout { + display: grid; + grid-template-columns: 0.95fr 1.05fr; + gap: 34px; + align-items: start; +} +body.page--contact .contact-info { + padding-top: 8px; +} +body.page--contact .contact-info__eyebrow { + margin: 0 0 20px; + font-family: var(--font-sans); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--muted); +} +body.page--contact .contact-info__title { + margin: 0 0 14px; + font-size: clamp(30px, 3vw, 46px); + line-height: 1.12; + text-wrap: balance; +} +body.page--contact .contact-info__text, +body.page--contact .contact-method__value, +body.page--contact .contact-prompts__list { + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + color: var(--text); +} +body.page--contact .contact-methods { + margin-top: 28px; + display: grid; + gap: 20px; +} +body.page--contact .contact-method__label, +body.page--contact .contact-prompts__title { + margin: 0 0 4px; + font-family: var(--font-sans); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--muted); +} +body.page--contact .contact-method__value a { + text-decoration: none; +} +body.page--contact .contact-method__value a:hover { + color: var(--brand-blue); +} +body.page--contact .contact-prompts { + margin-top: 30px; + padding-top: 24px; + border-top: 1px solid var(--rule); +} +body.page--contact .contact-prompts__list { + margin: 0; + padding-left: 18px; + line-height: 1.9; +} +body.page--contact .contact-form-wrap { + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + padding: 26px 24px; + box-shadow: var(--shadow-soft); +} +body.page--contact .contact-form { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 18px; +} +body.page--contact .contact-form__field { + display: flex; + flex-direction: column; + gap: 8px; +} +body.page--contact .contact-form__field--full { + grid-column: 1/-1; +} +body.page--contact .contact-form label { + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--muted); +} +body.page--contact .contact-form input, +body.page--contact .contact-form select, +body.page--contact .contact-form textarea { + width: 100%; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + background: #fff; + padding: 14px; + font-family: var(--font-sans); + font-size: 15px; + line-height: 1.5; + color: var(--ink); + transition: border-color 160ms ease, box-shadow 160ms ease; +} +body.page--contact .contact-form input:focus, +body.page--contact .contact-form select:focus, +body.page--contact .contact-form textarea:focus { + outline: none; + border-color: rgba(30, 79, 163, 0.45); + box-shadow: 0 0 0 3px rgba(30, 79, 163, 0.08); +} +body.page--contact .contact-form textarea { + resize: vertical; + min-height: 150px; +} +body.page--contact .contact-form__actions { + grid-column: 1/-1; + margin-top: 4px; +} + +body.page--thank-you .thank-you-section { + min-height: calc(100vh - 160px); + display: flex; + align-items: center; + justify-content: center; + padding: 72px 20px; + background: #f8f6f3; +} +body.page--thank-you .thank-you-card { + width: min(720px, 100%); + background: rgba(255, 255, 255, 0.92); + border: 1px solid rgba(43, 42, 40, 0.1); + border-radius: 8px; + padding: 44px 40px; + text-align: center; + box-shadow: 0 16px 40px rgba(43, 42, 40, 0.05); +} +body.page--thank-you .thank-you-card__eyebrow { + margin: 0 0 10px; + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 12px; + font-weight: 600; + letter-spacing: 0.14em; + text-transform: uppercase; + color: #8b847d; +} +body.page--thank-you .thank-you-card__title { + margin: 0 0 14px; + font-family: "Playfair Display", serif; + font-size: clamp(38px, 5vw, 60px); + line-height: 1.05; + font-weight: 400; + color: #2b2a28; + text-wrap: balance; +} +body.page--thank-you .thank-you-card__text { + max-width: 38ch; + margin: 0 auto 14px; + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 17px; + line-height: 1.8; + color: #6f6a65; +} +body.page--thank-you .thank-you-card__text--small { + font-size: 15px; + color: #8b847d; +} +body.page--thank-you .thank-you-card__text a { + color: inherit; + text-decoration: none; +} +body.page--thank-you .thank-you-card__text a:hover { + color: #1e4fa3; +} +body.page--thank-you .thank-you-card__actions { + margin-top: 22px; + display: flex; + justify-content: center; + gap: 12px; + flex-wrap: wrap; +} +@media (max-width: 767px) { + body.page--thank-you .thank-you-card { + padding: 34px 22px; + } + body.page--thank-you .thank-you-card__actions { + flex-direction: column; + align-items: center; + } + body.page--thank-you .thank-you-card__actions .btn { + width: 100%; + max-width: 320px; + } +} + +/* ========================================================= + 8. RESPONSIVE +========================================================= */ +@media (max-width: 768px) { + .site-logo .logo--desktop { + display: none; + } + .site-logo .logo--mobile { + display: block; + margin-top: 0; + margin-left: 0; + } +} +@media (max-width: 1100px) { + body.page--resources .resource-grid, + body.page--resources .resource-grid--three { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + body.page--listings .listing-hero__grid { + grid-template-columns: 1fr; + } + body.page--listings .listing-hero__media { + min-height: 360px; + } + body.page--listings .listing-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + body.page--contact .contact-layout { + grid-template-columns: 1fr; + } +} +@media (max-width: 767px) { + .section__inner, + .site-footer__inner, + .cta-band__inner { + width: calc(100% - 28px); + } + .page-hero { + min-height: 64vh; + } + .page-hero__content { + padding: 110px 20px 64px; + } + .page-hero__title { + font-size: clamp(30px, 10vw, 50px); + max-width: 10ch; + } + .page-hero__sub { + font-size: 14px; + max-width: 30ch; + } + .value-grid, + .resource-grid, + .resource-grid--three { + grid-template-columns: 1fr; + } + .value-card--featured { + max-width: none; + } + .cta-band__actions { + flex-direction: column; + } + .btn { + width: 100%; + max-width: 320px; + } + .faq__q { + font-size: 20px; + } + .site-footer__fineprint { + line-height: 1.9; + } + body.page--buyers .step-list, + body.page--sellers .step-list { + grid-template-columns: 1fr; + } + body.page--resources .section__title--left, + body.page--resources .section__lede--left, + body.page--resources .resource-group__lede { + text-align: center; + margin-left: auto; + margin-right: auto; + } + body.page--resources .resource-card__title { + font-size: 22px; + } + body.page--listings .listing-hero__content { + padding: 32px 24px 40px; + } + body.page--listings .listing-hero__title { + font-size: clamp(32px, 9vw, 44px); + } + body.page--listings .listing-hero__address { + font-size: 22px; + } + body.page--listings .listing-hero__meta { + font-size: 13px; + gap: 8px 16px; + } + body.page--listings .listing-hero__text { + max-width: none; + } + body.page--listings .listing-hero__actions, + body.page--listings .cta-band__actions { + flex-direction: column; + } + body.page--listings .listing-grid { + grid-template-columns: 1fr; + gap: 18px; + } + body.page--listings .listing-card__address { + font-size: 22px; + } + body.page--listings .listing-card__price { + font-size: 17px; + } + /* ========================================= + CONTACT FORM + ========================================= */ + body.page--contact .contact-form-wrap { + background: #fff; + border: 1px solid rgba(43, 42, 40, 0.12); + border-radius: 8px; + padding: 28px 24px; + box-shadow: 0 8px 24px rgba(43, 42, 40, 0.04); + } + body.page--contact .contact-form { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 18px 16px; + } + body.page--contact .contact-form__field { + display: flex; + flex-direction: column; + gap: 8px; + } + body.page--contact .contact-form__field--full { + grid-column: 1/-1; + } + body.page--contact .contact-form label { + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 12px; + font-weight: 600; + letter-spacing: 0.08em; + text-transform: uppercase; + color: #8b847d; + } + body.page--contact .contact-form input, + body.page--contact .contact-form select, + body.page--contact .contact-form textarea { + width: 100%; + border: 1px solid rgba(43, 42, 40, 0.12); + border-radius: 6px; + background: #fff; + padding: 14px 14px; + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 15px; + line-height: 1.5; + color: #2b2a28; + transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + } + body.page--contact .contact-form input::-moz-placeholder, body.page--contact .contact-form textarea::-moz-placeholder { + color: #8f8983; + } + body.page--contact .contact-form input::placeholder, + body.page--contact .contact-form textarea::placeholder { + color: #8f8983; + } + body.page--contact .contact-form input:focus, + body.page--contact .contact-form select:focus, + body.page--contact .contact-form textarea:focus { + outline: none; + border-color: rgba(30, 79, 163, 0.45); + box-shadow: 0 0 0 3px rgba(30, 79, 163, 0.08); + } + body.page--contact .contact-form select { + background-image: linear-gradient(45deg, transparent 50%, #8b847d 50%), linear-gradient(135deg, #8b847d 50%, transparent 50%); + background-position: calc(100% - 18px) calc(50% - 2px), calc(100% - 12px) calc(50% - 2px); + background-size: 6px 6px, 6px 6px; + background-repeat: no-repeat; + padding-right: 38px; + } + body.page--contact .contact-form textarea { + min-height: 160px; + resize: vertical; + } + body.page--contact .contact-form__actions { + grid-column: 1/-1; + margin-top: 6px; + display: flex; + align-items: center; + gap: 12px; + flex-wrap: wrap; + } + body.page--contact .contact-form__note { + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 13px; + line-height: 1.6; + color: #8b847d; + } + body.page--contact .contact-form .btn { + min-width: 190px; + } + body.page--contact { + /* Optional helper row if you add a short intro above the form */ + } + body.page--contact .contact-form__intro { + grid-column: 1/-1; + margin-bottom: 4px; + padding-bottom: 14px; + border-bottom: 1px solid rgba(43, 42, 40, 0.08); + } + body.page--contact .contact-form__intro-title { + margin: 0 0 6px; + font-family: "Playfair Display", serif; + font-size: 24px; + line-height: 1.2; + color: #2b2a28; + } + body.page--contact .contact-form__intro-text { + margin: 0; + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 15px; + line-height: 1.75; + color: #6f6a65; + } +} +@media (max-width: 767px) and (max-width: 767px) { + body.page--contact .contact-form { + grid-template-columns: 1fr; + gap: 16px; + } + body.page--contact .contact-form-wrap { + padding: 22px 18px; + } + body.page--contact .contact-form__actions { + flex-direction: column; + align-items: stretch; + } + body.page--contact .contact-form .btn { + width: 100%; + min-width: 0; + } +} +@media (max-width: 767px) { + .contact-form-wrap, + .value-card { + padding-left: 18px; + padding-right: 18px; + } } \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 534c67e3..93463ad5 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1,50 +1,499 @@ + + + - - - - Bare - Start Bootstrap Template - + + + Lana Swanson | La Jolla Real Estate Agent | Coldwell Banker + Realty + + + + + + + + + + + + + + + + + + + + + + - + + + + + + - - - - -
-
-

A Bootstrap 5 Starter Template

-

A complete project boilerplate built with Bootstrap

-

Bootstrap v5.2.3

-
+ + + +
+ + +
+ + + + +
+

+ San Diego Real Estate Agent +

+
+

Your Next Chapter Starts Here

+ +

+ Buying or selling a home in San + Diego + is one of the biggest decisions you'll make — and it + shouldn't feel overwhelming. As a La Jolla REALTOR® with + Coldwell Banker Realty, I walk my clients through every + step with straight talk, no pressure, and a plan that + actually fits their life. +

+ +
+
+ + +
+
+

How can I + help?

+ +
+
+

+ For La Jolla & San Diego Buyers +

+

+ Buying a home in La Jolla or San Diego has a lot + of moving parts. From Bird Rock to La Jolla + Shores, I help you stay informed and confident + at every step — so nothing catches you off + guard. +

+

+ Explore + the buyers page +

+
+ +
+

+ For La Jolla & San Diego Sellers +

+

+ Selling your San Diego home is part + preparation, part timing, part presentation. I + help you get all three right so your home stands + out in the market and sells well. +

+

+ Explore + the sellers page +

+
+
+
+
+ + +
+
+
+
+

A La Jolla Local

+

+ I live in La Jolla and I know this neighborhood + — and the surrounding San Diego communities of + Bird Rock, La Jolla Shores, The Village, and + Windansea — the way only a neighbor can. Before + real estate, I spent 25 years in software + engineering, so I bring a detail-oriented, + analytical mind to every transaction. Whether + you're buying a home in La Jolla or selling in + San Diego County, my clients say I listen. + Really listen. That's not an accident — it's how + I work. +

+ Schedule + a conversation → +
+
+ Lana Swanson, La Jolla REALTOR® with Coldwell Banker Realty, smiling in a professional setting +
+
+
+
+ + +
+
+

What guides + my approach

+ +
+
+

No + guesswork

+

+ I won't push you toward a decision before you're + ready. We start by getting clear on what you + actually want — and what you don't. +

+
+ +
+

The full picture

+

+ Whether you're buying or selling in La Jolla or + anywhere in San Diego, I look at the full + picture — market timing, your situation, and + what's realistic — before making a move. +

+
+ + +
+
+
+ + +
+
+

Featured + resources

+

+ Buying or selling a home in La Jolla or San Diego has a + lot of moving parts. These guides break it down so you + know what to expect and when. +

+ + +
+
+ + +
+
+

Ready to buy or + sell in La Jolla?

+

+ Whether you're searching for a home in La Jolla, Bird + Rock, La Jolla Shores, or anywhere in San Diego County + — let's talk. That's exactly what the first conversation + is for. +

+ +
+
+ +
+ + - - - + + + + + diff --git a/dist/listings.html b/dist/listings.html new file mode 100644 index 00000000..c9d3f462 --- /dev/null +++ b/dist/listings.html @@ -0,0 +1,607 @@ + + + + + + + + + + San Diego Listings | Lana Swanson | Coldwell Banker + Realty + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main + content + + + +
+ + +
+
+
+ + 2082 Via Casa Alta, La Jolla — a contemporary luxury estate with pool and ocean views + +
+ +
+

Featured listing

+ +

+ San Diego & La Jolla Homes for Sale +

+ +

+ 2082 Via Casa Alta, La Jolla +

+ +

+ + + + +

+ +

+ Nestled in the heart of La Jolla, 2082 Via Casa Alta + stands as a masterpiece of contemporary design and + luxury living. Recently reimagined through a + complete + rebuild, this breathtaking estate offers a seamless + blend of modern elegance and timeless + sophistication. +

+ + +
+
+
+ + +
+
+

About + these listings

+

La Jolla and San Diego offer some of Southern + California's + most desirable coastal real estate — from walkable + villages + to quiet canyon streets and oceanfront estates. Whether + you're looking for a primary home, an investment + property, + or just getting a feel for the market, these are homes + I'm + actively working with. See something you like? Reach out + and I'll walk you through it.

+
+
+ + +
+
+

Available + listings

+

+ A curated selection of homes in La Jolla. View + all listings +

+ +
+ + + + + + + + + + + + + + + + + +
+
+
+ + +
+
+

Interested in a + specific property?

+

+ If you'd like details, private showing information, or + help narrowing your search, I'd be happy to help. +

+ +
+
+ +
+ + + + + + + + diff --git a/dist/neighborhood-explorer.html b/dist/neighborhood-explorer.html new file mode 100644 index 00000000..6b83a879 --- /dev/null +++ b/dist/neighborhood-explorer.html @@ -0,0 +1,882 @@ + + + + + + + + + San Diego Neighborhood Explorer | Lana Swanson, REALTOR® + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
San Diego Region
+

Neighborhood
Explorer

+

16 communities from Oceanside to Little + Italy — history, demographics, scores & more

+
+
16
Neighborhoods
+
70mi
Coastal corridor
+
850K+
Total residents
+
$695K–$3.1M
Median home range
+
+
+
+ +
+ + + + +
+
+ Filter: + + + + + +
+
+
+
+ + + + + + + + + + +
+ + + + + + diff --git a/dist/resources.html b/dist/resources.html new file mode 100644 index 00000000..370fe327 --- /dev/null +++ b/dist/resources.html @@ -0,0 +1,620 @@ + + + + + + + + + + La Jolla & San Diego Real Estate Resources | Lana Swanson + REALTOR® | Coldwell Banker Realty + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main + content + + + +
+ + +
+ + +
+ +

+ Practical tools for San Diego buyers and + sellers +

+

+ Buying or selling a home in San Diego + involves a lot of decisions. These guides and worksheets + help you understand what you're looking at — before you + have to act on it. +

+
+
+ + +
+
+

+ San Diego real estate guidance you can come back to +

+

+ The San Diego real estate market has a lot + of moving parts. Whether you're buying a home in La + Jolla, Bird Rock, or La Jolla Shores — or selling + anywhere in San Diego County — these resources help you + understand what's ahead before you're in the middle of + it. Put together by Lana Swanson, REALTOR® with + Coldwell Banker Realty La Jolla. +

+
+
+ + +
+
+

Jump to resources

+ +
+
+ + + + + +
+
+
+
+ +

+ Resources for La Jolla & San Diego buyers +

+

+ Guides and tools to help you know what to expect + when buying a home in La Jolla, Bird Rock, La + Jolla Shores, or anywhere in San Diego County — + before you have to decide anything. +

+
+ + +
+
+
+ + +
+ +
+ + +
+
+

Common questions + about La Jolla real estate resources

+ +
+ +
+ Are these resources free to + use? +
+ Yes. They're meant to be practical tools you can + use as you explore buying or selling in La + Jolla, + Bird Rock, La Jolla Shores, or anywhere in San + Diego County — no strings attached. +
+
+ +
+ Do these replace a + consultation with a La Jolla REALTOR®? +
+ No — but they're a good place to start. A + conversation with a La Jolla real estate agent + lets me look at your specific situation and give + you guidance that actually fits. These guides + help you come into that conversation prepared. +
+
+ +
+ Can I reach out even if I'm + early in the process? +
+ Absolutely. Many La Jolla and San Diego buyers + and sellers start by gathering information + before + they're ready to move. That's exactly what this + page is for — and I'm happy to answer questions + at any stage. +
+
+ +
+ What neighborhoods in La + Jolla do you serve? +
+ I work with buyers and sellers throughout La + Jolla — including Bird Rock, La Jolla Shores, + The Village, Windansea, and the surrounding San + Diego communities. If you're not sure whether + your area is covered, reach out and we'll figure + it out together. +
+
+ +
+
+
+ + +
+
+

Need something + more specific?

+

+ If the guides don't quite cover your La Jolla or San + Diego real estate situation, reach out and we'll talk + through it directly. +

+ +
+
+ +
+ + + + + + + + + + diff --git a/dist/robots.txt b/dist/robots.txt new file mode 100644 index 00000000..86489a05 --- /dev/null +++ b/dist/robots.txt @@ -0,0 +1,49 @@ + +# As a condition of accessing this website, you agree to abide by the following +# content signals: +# (a) If a Content-Signal = yes, you may collect content for the corresponding +# use. +# (b) If a Content-Signal = no, you may not collect content for the +# corresponding use. +# (c) If the website operator does not include a Content-Signal for a +# corresponding use, the website operator neither grants nor restricts +# permission via Content-Signal with respect to the corresponding use. +# The content signals and their meanings are: +# search: building a search index and providing search results +# ai-input: inputting content into one or more AI models +# ai-train: training or fine-tuning AI models + +# BEGIN Cloudflare Managed content +User-agent: * +Content-Signal: search=yes,ai-train=no +Allow: / + +User-agent: Amazonbot +Disallow: / + +User-agent: Applebot-Extended +Disallow: / + +User-agent: Bytespider +Disallow: / + +User-agent: CCBot +Disallow: / + +User-agent: ClaudeBot +Disallow: / + +User-agent: CloudflareBrowserRenderingCrawler +Disallow: / + +User-agent: Google-Extended +Disallow: / + +User-agent: GPTBot +Disallow: / + +User-agent: meta-externalagent +Disallow: / +# END Cloudflare Managed Content + +Sitemap: https://lanaswanson.com/sitemap.xml \ No newline at end of file diff --git a/dist/sellers.html b/dist/sellers.html new file mode 100644 index 00000000..7207a98c --- /dev/null +++ b/dist/sellers.html @@ -0,0 +1,612 @@ + + + + + + + + + + Selling a Home in La Jolla & San Diego | Lana Swanson REALTOR® | + Coldwell Banker Realty + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to main + content + + + +
+ + +
+ + +
+

+ Sell Your Home in San Diego +


+

Priced Right. Presented Well. Sold.

+

+ Pricing, preparation, and presentation — done + thoughtfully + so your San Diego home stands out and sells + for what it's worth. +

+
+
+ + +
+
+

+ What Selling a Home in La Jolla Actually Takes +

+

+ Most La Jolla and San Diego sellers I work with are + juggling a lot — + figuring out timing, preparing the home, and planning + what comes next. + As a La Jolla REALTOR® with Coldwell Banker Realty, my + job is to make + the selling side of that as organized and + straightforward as possible — + whether you're in La Jolla, Bird Rock, La Jolla Shores, + or anywhere + in San Diego County. +

+
+
+ + +
+
+

What you can + expect

+ +
+
+

Strategic La Jolla + Pricing

+

+ I analyze local La Jolla and San Diego trends, + buyer behavior, + and comparable sales to position your home where + it attracts + the strongest interest. +

+
+ +
+

Smart + Preparation

+

+ Not every update is worth making before you list + your La Jolla + or San Diego home. I help you figure out which + improvements + actually move the needle — and which ones don't. +

+
+ +
+

Maximum Exposure

+

+ Your La Jolla listing goes out through Coldwell + Banker's national + network, MLS, and targeted digital campaigns — + but I also know + who buys in La Jolla, Bird Rock, and La Jolla + Shores, and how + to reach them directly. +

+
+ +
+

Skilled Negotiation

+

+ When offers come in on your La Jolla home, the + price is just the + starting point. I help you evaluate the full + picture — terms, + contingencies, and buyer strength — so you make + the best decision, + not just the fastest one. +

+
+ + +
+
+
+ + +
+
+

The La Jolla + & San Diego home selling process

+ +
    +
  1. +

    ONE

    +

    Strategy & Pricing

    +

    + We look at what's sold in La Jolla, Bird Rock, + La Jolla Shores, + and neighboring San Diego communities — what's + currently competing + with your home, and what buyers in this market + are actually + responding to — then set a price that attracts + serious offers. +

    +
  2. +
  3. +

    TWO

    +

    Preparation

    +

    + We figure out exactly what to fix, stage, and + photograph — + and what not to bother with — so you spend money + where it + actually counts before your La Jolla home hits + the market. +

    +
  4. +
  5. +

    THREE

    +

    Launch & marketing

    +

    + Professional photography, online exposure + through Coldwell Banker's + national network and MLS, and targeted outreach + to qualified buyers + in the La Jolla and San Diego market. +

    +
  6. +
  7. +

    FOUR

    +

    Offers & + Negotiation

    +

    + When offers come in I help you read beyond the + price — evaluating + financing, contingencies, and timing — so you + choose the offer + that actually closes on your La Jolla or San + Diego home. +

    +
  8. +
  9. +

    FIVE

    +

    Escrow to close

    +

    + I track every deadline, coordinate with all + parties, and keep + you updated so nothing stalls between acceptance + and the day + you hand over the keys. +

    +
  10. +
+
+
+ + +
+ +
+ + +
+
+

Common La Jolla + seller questions

+ +
+
+ When is the best time to + list my La Jolla home? +
+ Honestly, it depends on your situation more than + the calendar. + Spring tends to be active in La Jolla and San + Diego, but I've seen + well-prepared homes in Bird Rock, La Jolla + Shores, and The Village + sell well in any month. We'll look at what's + happening in your + specific neighborhood and build a timeline that + works for you. +
+
+ +
+ Do I need to renovate before + selling my La Jolla home? +
+ Not always. In the La Jolla market, targeted + improvements and + smart presentation choices often create the best + return without + over-investing. I'll walk you through what's + actually worth doing + for your specific property. +
+
+ +
+ How do we handle showings + and privacy? +
+ We can tailor showing windows, notice periods, + and guidelines + to fit your schedule. The goal is strong buyer + access without + disrupting your life more than necessary. +
+
+ +
+ How is the La Jolla real + estate market right now? +
+ The La Jolla market — including Bird Rock, La + Jolla Shores, + Windansea, and The Village — is one of the most + sought-after + in San Diego County. I stay current on local + trends and can walk + you through exactly what homes like yours are + doing in today's market. + Let's talk. +
+
+
+
+
+ + +
+
+

Thinking about + selling your La Jolla home?

+

+ Whether you're in La Jolla, Bird Rock, La Jolla Shores, + or anywhere + in San Diego County — I'll help you understand your + options and what + the current market looks like for homes like yours. +

+ +
+
+ +
+ + + + + + + + + + + diff --git a/dist/sitemap.xml b/dist/sitemap.xml new file mode 100644 index 00000000..9f15a11f --- /dev/null +++ b/dist/sitemap.xml @@ -0,0 +1,97 @@ + + + + + + + https://lanaswanson.com/ + 2026-03-25T01:35:14+00:00 + 1.00 + + + https://lanaswanson.com/buyers + 2026-03-25T01:35:14+00:00 + 0.80 + + + https://lanaswanson.com/sellers + 2026-03-25T01:35:14+00:00 + 0.80 + + + https://lanaswanson.com/listings + 2026-03-25T01:35:14+00:00 + 0.80 + + + https://lanaswanson.com/resources + 2026-03-25T01:35:14+00:00 + 0.80 + + + https://lanaswanson.com/budget-calculator + 2026-03-25T01:35:14+00:00 + 0.80 + + + https://lanaswanson.com/contact + 2026-03-25T01:35:14+00:00 + 0.80 + + + https://lanaswanson.com/assets/pdfs/02_Prep_to_Sell_Checklist.pdf + 2026-03-25T01:35:14+00:00 + 0.80 + + + https://lanaswanson.com/assets/pdfs/03_Offer_Terms_Explained.pdf + 2026-03-25T01:35:14+00:00 + 0.80 + + + https://lanaswanson.com/assets/pdfs/11_Monthly_Home_Budget_Worksheet.pdf + 2026-03-25T01:35:14+00:00 + 0.80 + + + https://lanaswanson.com/assets/pdfs/01_The_Buying_Process.pdf + 2026-03-25T01:35:14+00:00 + 0.64 + + + https://lanaswanson.com/assets/pdfs/08_Home_Tour_Comparison_Worksheet.pdf + 2026-03-25T01:35:14+00:00 + 0.64 + + + https://lanaswanson.com/assets/pdfs/10_Home_Inspection_Day_Checklist.pdf + 2026-03-25T01:35:14+00:00 + 0.64 + + + https://lanaswanson.com/assets/pdfs/12_Pricing_Strategy.pdf + 2026-03-25T01:35:14+00:00 + 0.64 + + + https://lanaswanson.com/assets/pdfs/04_Selling_Timeline_Planner.pdf + 2026-03-25T01:35:14+00:00 + 0.64 + + + https://lanaswanson.com/assets/pdfs/13_Offer_Review_Sheet.pdf + 2026-03-25T01:35:14+00:00 + 0.64 + + + https://lanaswanson.com/assets/pdfs/prep-to-sell.pdf + 2026-03-25T01:35:14+00:00 + 0.64 + + + + \ No newline at end of file diff --git a/dist/thank-you.html b/dist/thank-you.html new file mode 100644 index 00000000..c8a18d67 --- /dev/null +++ b/dist/thank-you.html @@ -0,0 +1,173 @@ + + + + + + + + + + Thank You | Lana Swanson | Coldwell Banker Realty + + + + + + + + + + + + + + + + Skip to main + content + + + +
+
+
+

Message received

+ +

+ Thank you for reaching out +

+ +

+ Your message has been sent successfully. I’ll review it + and get back to you as soon as I can. +

+ +

+ For anything time-sensitive, you can also call
+ 858-241-9903. +

+ + +
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 70e82dd8..38301303 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,14 +12,15 @@ "bootstrap": "5.2.3" }, "devDependencies": { - "autoprefixer": "10.4.14", + "autoprefixer": "^10.4.14", "browser-sync": "2.29.1", "chokidar": "3.5.3", "concurrently": "6.3.0", - "postcss": "8.4.21", + "onchange": "^7.1.0", + "postcss": "^8.4.21", "prettier": "2.8.6", "pug": "3.0.2", - "sass": "1.60.0", + "sass": "^1.60.0", "shelljs": "0.8.5", "upath": "2.0.1" } @@ -52,6 +53,344 @@ "to-fast-properties": "^2.0.0" } }, + "node_modules/@blakeembrey/deque": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@blakeembrey/deque/-/deque-1.0.5.tgz", + "integrity": "sha512-6xnwtvp9DY1EINIKdTfvfeAtCYw4OqBZJhtiqkT3ivjnEfa25VQ3TsKvaFfKm8MyGIEfE95qLe+bNEt3nB0Ylg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@blakeembrey/template": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@blakeembrey/template/-/template-1.2.0.tgz", + "integrity": "sha512-w/63nURdkRPpg3AXbNr7lPv6HgOuVDyefTumiXsbXxtIwcuk5EXayWR5OpSwDjsQPgaYsfUSedMduaNOjAYY8A==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@parcel/watcher": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@popperjs/core": { "version": "2.11.6", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", @@ -160,6 +499,13 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -205,6 +551,7 @@ "url": "https://tidelift.com/funding/github/npm/autoprefixer" } ], + "license": "MIT", "dependencies": { "browserslist": "^4.21.5", "caniuse-lite": "^1.0.30001464", @@ -451,9 +798,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001469", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz", - "integrity": "sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==", + "version": "1.0.30001768", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001768.tgz", + "integrity": "sha512-qY3aDRZC5nWPgHUgIB84WL+nySuo19wk0VJpp/XI9T34lrvkyhRvNVOFJOp2kxClQhiFBu+TaUSudf6oa3vkSA==", "dev": true, "funding": [ { @@ -463,8 +810,13 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", @@ -682,6 +1034,21 @@ "node": ">= 0.10" } }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/date-fns": { "version": "2.25.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", @@ -727,6 +1094,17 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/dev-ip": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", @@ -1141,6 +1519,16 @@ "node": ">=0.10.0" } }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", @@ -1288,6 +1676,13 @@ "node": ">=4" } }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, "node_modules/js-stringify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", @@ -1472,6 +1867,14 @@ "node": ">= 0.6" } }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", @@ -1535,6 +1938,25 @@ "wrappy": "1" } }, + "node_modules/onchange": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/onchange/-/onchange-7.1.0.tgz", + "integrity": "sha512-ZJcqsPiWUAUpvmnJri5TPBooqJOPmC0ttN65juhN15Q8xA+Nbg3BaxBHXQ45EistKKlKElb0edmbPWnKSBkvMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@blakeembrey/deque": "^1.0.5", + "@blakeembrey/template": "^1.0.0", + "arg": "^4.1.3", + "chokidar": "^3.3.1", + "cross-spawn": "^7.0.1", + "ignore": "^5.1.4", + "tree-kill": "^1.2.2" + }, + "bin": { + "onchange": "dist/bin.js" + } + }, "node_modules/openurl": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", @@ -1571,6 +1993,16 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -1624,6 +2056,7 @@ "url": "https://tidelift.com/funding/github/npm/postcss" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -1931,27 +2364,62 @@ "dev": true }, "node_modules/sass": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.60.0.tgz", - "integrity": "sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", + "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "dev": true, + "license": "MIT", "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", + "chokidar": "^4.0.0", + "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { "sass": "sass.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/sass/node_modules/immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", + "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } }, "node_modules/send": { "version": "0.16.2", @@ -2142,6 +2610,29 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -2459,6 +2950,22 @@ "node": ">=0.10.0" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/with": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", @@ -2622,6 +3129,144 @@ "to-fast-properties": "^2.0.0" } }, + "@blakeembrey/deque": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@blakeembrey/deque/-/deque-1.0.5.tgz", + "integrity": "sha512-6xnwtvp9DY1EINIKdTfvfeAtCYw4OqBZJhtiqkT3ivjnEfa25VQ3TsKvaFfKm8MyGIEfE95qLe+bNEt3nB0Ylg==", + "dev": true + }, + "@blakeembrey/template": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@blakeembrey/template/-/template-1.2.0.tgz", + "integrity": "sha512-w/63nURdkRPpg3AXbNr7lPv6HgOuVDyefTumiXsbXxtIwcuk5EXayWR5OpSwDjsQPgaYsfUSedMduaNOjAYY8A==", + "dev": true + }, + "@parcel/watcher": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", + "dev": true, + "optional": true, + "requires": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6", + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "dependencies": { + "picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "optional": true + } + } + }, + "@parcel/watcher-android-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", + "dev": true, + "optional": true + }, + "@parcel/watcher-darwin-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", + "dev": true, + "optional": true + }, + "@parcel/watcher-darwin-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", + "dev": true, + "optional": true + }, + "@parcel/watcher-freebsd-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-arm-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-arm-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-arm64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-x64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-x64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", + "dev": true, + "optional": true + }, + "@parcel/watcher-win32-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", + "dev": true, + "optional": true + }, + "@parcel/watcher-win32-ia32": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", + "dev": true, + "optional": true + }, + "@parcel/watcher-win32-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", + "dev": true, + "optional": true + }, "@popperjs/core": { "version": "2.11.6", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", @@ -2702,6 +3347,12 @@ "picomatch": "^2.0.4" } }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -2916,9 +3567,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001469", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001469.tgz", - "integrity": "sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==", + "version": "1.0.30001768", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001768.tgz", + "integrity": "sha512-qY3aDRZC5nWPgHUgIB84WL+nySuo19wk0VJpp/XI9T34lrvkyhRvNVOFJOp2kxClQhiFBu+TaUSudf6oa3vkSA==", "dev": true }, "chalk": { @@ -3099,6 +3750,17 @@ "vary": "^1" } }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "date-fns": { "version": "2.25.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", @@ -3126,6 +3788,13 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, + "detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "optional": true + }, "dev-ip": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", @@ -3441,6 +4110,12 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true + }, "immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", @@ -3555,6 +4230,12 @@ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, "js-stringify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", @@ -3700,6 +4381,13 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, + "node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "optional": true + }, "node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", @@ -3748,6 +4436,21 @@ "wrappy": "1" } }, + "onchange": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/onchange/-/onchange-7.1.0.tgz", + "integrity": "sha512-ZJcqsPiWUAUpvmnJri5TPBooqJOPmC0ttN65juhN15Q8xA+Nbg3BaxBHXQ45EistKKlKElb0edmbPWnKSBkvMg==", + "dev": true, + "requires": { + "@blakeembrey/deque": "^1.0.5", + "@blakeembrey/template": "^1.0.0", + "arg": "^4.1.3", + "chokidar": "^3.3.1", + "cross-spawn": "^7.0.1", + "ignore": "^5.1.4", + "tree-kill": "^1.2.2" + } + }, "openurl": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", @@ -3775,6 +4478,12 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -4075,20 +4784,36 @@ "dev": true }, "sass": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.60.0.tgz", - "integrity": "sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==", + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", + "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "dev": true, "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", + "@parcel/watcher": "^2.4.1", + "chokidar": "^4.0.0", + "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" }, "dependencies": { + "chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "requires": { + "readdirp": "^4.0.1" + } + }, "immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", + "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", + "dev": true + }, + "readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true } } @@ -4259,6 +4984,21 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, "shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -4474,6 +5214,15 @@ "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", "dev": true }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, "with": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", diff --git a/package.json b/package.json index 1e745a2f..79c8a5c0 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "build:scripts": "node scripts/build-scripts.js", "build:scss": "node scripts/build-scss.js", "clean": "node scripts/clean.js", + "watch-sass": "onchange './src/scss/**/*.scss' -- npm run build:scss", "start": "npm run build && node scripts/start.js", "start:debug": "npm run build && node scripts/start-debug.js" }, @@ -39,14 +40,15 @@ "bootstrap": "5.2.3" }, "devDependencies": { - "autoprefixer": "10.4.14", + "autoprefixer": "^10.4.14", "browser-sync": "2.29.1", "chokidar": "3.5.3", "concurrently": "6.3.0", - "postcss": "8.4.21", + "onchange": "^7.1.0", + "postcss": "^8.4.21", "prettier": "2.8.6", "pug": "3.0.2", - "sass": "1.60.0", + "sass": "^1.60.0", "shelljs": "0.8.5", "upath": "2.0.1" } diff --git "a/pdfs/LARGE TITLE Monthly Home Budget Worksheet Short description line Lana Swanson REALTOR\302\256 Coldwell Banker Realty.png" "b/pdfs/LARGE TITLE Monthly Home Budget Worksheet Short description line Lana Swanson REALTOR\302\256 Coldwell Banker Realty.png" new file mode 100644 index 00000000..68516138 Binary files /dev/null and "b/pdfs/LARGE TITLE Monthly Home Budget Worksheet Short description line Lana Swanson REALTOR\302\256 Coldwell Banker Realty.png" differ diff --git a/pdfs/blueprint.png b/pdfs/blueprint.png new file mode 100644 index 00000000..efb24ddb Binary files /dev/null and b/pdfs/blueprint.png differ diff --git a/pdfs/pageoneoption.png b/pdfs/pageoneoption.png new file mode 100644 index 00000000..358f429e Binary files /dev/null and b/pdfs/pageoneoption.png differ diff --git a/scripts/build-scss.js b/scripts/build-scss.js index 9cb8409d..544de202 100644 --- a/scripts/build-scss.js +++ b/scripts/build-scss.js @@ -2,4 +2,6 @@ const renderSCSS = require('./render-scss'); +console.log("Building scss.."); + renderSCSS(); diff --git a/scripts/render-scss.js b/scripts/render-scss.js index eb03da61..8479023d 100644 --- a/scripts/render-scss.js +++ b/scripts/render-scss.js @@ -11,20 +11,20 @@ const stylesPath = '../src/scss/styles.scss'; const destPath = upath.resolve(upath.dirname(__filename), '../dist/css/styles.css'); module.exports = function renderSCSS() { - + const results = sass.renderSync({ data: entryPoint, includePaths: [ upath.resolve(upath.dirname(__filename), '../node_modules') ], - }); + }); const destPathDirname = upath.dirname(destPath); if (!sh.test('-e', destPathDirname)) { sh.mkdir('-p', destPathDirname); } - postcss([ autoprefixer ]).process(results.css, {from: 'styles.css', to: 'styles.css'}).then(result => { + postcss([autoprefixer]).process(results.css, { from: 'styles.css', to: 'styles.css' }).then(result => { result.warnings().forEach(warn => { console.warn(warn.toString()) }) diff --git a/src/assets/favicon.ico b/src/assets/favicon.ico deleted file mode 100644 index 9356735c..00000000 Binary files a/src/assets/favicon.ico and /dev/null differ diff --git a/src/scss/styles-clean.scss b/src/scss/styles-clean.scss new file mode 100644 index 00000000..b8787390 --- /dev/null +++ b/src/scss/styles-clean.scss @@ -0,0 +1,1873 @@ +/* ========================================================= + LANA SWANSON SITE STYLES (CONSOLIDATED) + --------------------------------------------------------- + Cleaned + organized into: + 1. Tokens + 2. Base / reset + 3. Shared layout + 4. Header / navigation + 5. Shared components + 6. Shared hero system + 7. Shared page sections + 8. Page-specific overrides + + Page scoping: + body.page--home + body.page--buyers + body.page--sellers + body.page--resources + body.page--listings + body.page--contact +========================================================= */ + +/* ========================================================= + 1. TOKENS +========================================================= */ + +:root { + --ink: #2f2c29; + --text: #6f6a65; + --muted: #8b847d; + --muted-2: #c2bbb1; + + --surface: #ffffff; + --surface-soft: #f8f6f3; + --surface-warm: #f5f2ed; + --surface-beige: #f3eee6; + + --rule: rgba(43, 42, 40, 0.14); + --rule-strong: rgba(43, 42, 40, 0.20); + --line: rgba(0, 0, 0, 0.08); + + --brand-blue: #1e4fa3; + --brand-blue-bright: #03236c; + --brand-blue-soft: rgba(30, 79, 163, 0.4); + --brand-blue-dark: #03236c; + + --shadow-soft: 0 8px 24px rgba(43, 42, 40, 0.04); + --shadow-card: 0 14px 34px rgba(43, 42, 40, 0.08); + --shadow-panel: 0 20px 50px rgba(0, 0, 0, 0.06); + + --font-sans: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + --font-serif: "Playfair Display", serif; + + --radius-sm: 6px; + --radius-pill: 999px; + + --container: 1100px; +} + +/* ========================================================= + 2. BASE / RESET +========================================================= */ + +html, +body { + margin: 0; + padding: 0; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.65; + color: var(--text); + background: var(--surface); + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; +} + +img { + max-width: 100%; + display: block; +} + +a { + color: inherit; + text-decoration: none; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + color: var(--ink); + font-family: var(--font-serif); + font-weight: 400; +} + +.visually-hidden-focusable { + position: absolute; + left: -9999px; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; +} + +.visually-hidden-focusable:focus { + left: 16px; + top: 16px; + width: auto; + height: auto; + padding: 10px 14px; + background: #fff; + color: var(--ink); + border: 1px solid var(--rule); + z-index: 9999; +} + +.hidden { + display: none; +} + +.page-main { + width: 100%; +} + +/* ========================================================= + 3. SHARED LAYOUT +========================================================= */ + +.approach { + padding: 80px 24px; + + .container { + max-width: 1100px; + margin: 0 auto; + } + + &__grid { + display: grid; + grid-template-columns: 1.1fr 0.9fr; + gap: 56px; + align-items: center; + + @media (max-width: 900px) { + grid-template-columns: 1fr; + gap: 40px; + } + } + + &__content { + h2 { + font-family: "Playfair Display", serif; + font-size: clamp(32px, 3vw, 48px); + line-height: 1.2; + margin-bottom: 20px; + color: #2f2b28; + } + + h2::after { + content: ""; + display: block; + width: 70px; + height: 1px; + background: #d6d1cb; + margin-top: 18px; + } + + p { + font-size: 18px; + line-height: 1.7; + color: #6f6a65; + max-width: 480px; + } + } + + &__image { + img { + width: 100%; + height: auto; + border-radius: 6px; + display: block; + border-radius: 10px; + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08); + max-width: 520px; + } + } + + &.reverse { + .approach__image img { + width: auto; + max-height: 520px; + } + } +} + +.section__inner, +.site-footer__inner { + width: min(var(--container), calc(100% - 48px)); + margin: 0 auto; +} + +.section { + width: 100%; + padding: clamp(56px, 8vw, 108px) 0; + background: var(--surface); +} + +.section--intro { + padding-top: clamp(52px, 7vw, 84px); + padding-bottom: clamp(42px, 5vw, 64px); +} + +.section__title { + margin: 0 0 16px; + font-size: clamp(30px, 3vw, 46px); + line-height: 1.12; + text-align: center; + text-wrap: balance; +} + +.section__title--left { + text-align: left; +} + +.section__lede { + max-width: 760px; + margin: 0 auto; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + text-align: center; + color: var(--text); + text-wrap: pretty; + + a { + color: var(--brand-blue); + } +} + +.section__lede--left { + max-width: 680px; + margin: 0; + text-align: left; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +/* ========================================================= + 4. HEADER / NAVIGATION +========================================================= */ + +.site-header { + width: 100%; + background: #fff; + box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06); +} + +.site-logo { + display: flex; + align-items: center; +} + +.site-logo .logo { + height: 75px; + width: auto; +} + +.site-logo .logo--mobile { + display: none; +} + +.dropdown-item { + --bs-dropdown-link-hover-bg: #edf1f3; + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #edf1f3; +} + +.navbar-expand-lg .navbar-nav { + .dropdown-menu { + padding: 0; + + li { + margin: 10px; + } + } + + .dropdown-divider { + margin: 0; + padding: 0; + } +} + +.navbar { + display: flex; + gap: 32px; + + a { + position: relative; + text-decoration: none; + color: #7a7a7a; + font-weight: 500; + letter-spacing: 0.06em; + padding-bottom: 6px; + transition: color 0.2s ease; + font-size: 11px; + + &:hover { + color: #4a4a4a; + } + + &.active { + color: $brand-accent; + + &::after { + content: ""; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 1px; + background-color: $brand-accent; + } + } + } +} + +.navbar-collapse { + position: relative; + text-transform: uppercase; + font-weight: 400; + font-size: 16px; + letter-spacing: 2px; + z-index: 2; +} + +.navbar-nav .show > .nav-link, +.navbar-nav .nav-link.active { + color: var(--brand-blue); +} + + +.nav-link { + font-size: 11px; + letter-spacing: 0.07em; +} + +.navbar-collapse .navbar-nav { + position: relative; + bottom: 5px; + background-color: white; +} + +.navbar-collapse .navbar-nav .nav-item { + padding: 20px 10px 15px; +} + +/* ========================================================= + 5. SHARED COMPONENTS +========================================================= */ + +/* Buttons */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 46px; + padding: 12px 18px; + border-radius: 4px; + text-decoration: none; + font-family: var(--font-sans); + font-size: 13px; + font-weight: 500; + letter-spacing: 0.09em; + text-transform: uppercase; + transition: + transform 160ms ease, + background-color 160ms ease, + border-color 160ms ease, + color 160ms ease, + box-shadow 160ms ease; +} + +.btn:hover { + transform: translateY(-1px); +} + +.btn--primary { + background: var(--brand-blue-bright); + color: #fff; + border: 1px solid rgba(0, 0, 0, 0.08); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06); +} + +.btn--primary:hover, +.btn--primary:active, +.btn--primary:focus { + background: #03236c !important; + color: #fff !important; +} + +.btn--secondary { + background: white; + color: var(--brand-blue); + border: 1px solid var(--brand-blue-soft); + + &:hover, + &:active, + &:focus { + background: rgba(30, 79, 163, 0.04) !important; + border-color: var(--brand-blue) !important; + color: white !important; + } +} + +/* Shared value cards */ +.value-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 18px; + margin-top: 50px; +} + +.value-card { + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + padding: 26px 24px 22px; + + .btn--secondary:hover { + background: #03236c !important; + color: white !important; + } +} + +.value-card__title { + margin: 0 0 10px; + font-size: 28px; + line-height: 1.15; +} + +.value-card__text { + margin: 0; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.75; + color: var(--text); +} + +.value-card--featured { + grid-column: 1 / -1; + max-width: 720px; + margin: 0 auto; +} + +/* Shared resource cards */ +.resource-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 18px; + margin-top: 34px; +} + +.resource-grid--three { + grid-template-columns: repeat(3, minmax(0, 1fr)); + margin-top: 0; +} + +.resource-card { + display: block; + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + padding: 24px 22px; + text-decoration: none; + + border: 1px solid #e6e3df; + border-radius: 8px; + + transition: + transform 160ms ease, + border-color 160ms ease, + box-shadow 160ms ease; +} + +.resource-card::after { + content: "PDF"; + font-size: 11px; + letter-spacing: .08em; + text-transform: uppercase; + opacity: .5; +} + +.resource-card:hover { + transform: translateY(-2px); + border-color: var(--rule-strong); + box-shadow: var(--shadow-soft); +} + +.resource-card__eyebrow { + margin: 0 0 8px; + font-family: var(--font-sans); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.12em; + text-transform: uppercase; + color: var(--muted); + +} + +.resource-card__actions { + display: flex; + gap: 16px; + margin-top: 16px; +} + +.resource-card__link { + font-size: 0.72rem; + font-weight: 500; + letter-spacing: 0.1em; + text-transform: uppercase; + color: var(--navy, #1b2a4a); + text-decoration: none; + border-bottom: 1px solid currentColor; + padding-bottom: 2px; + transition: opacity 0.2s; +} + +.resource-card__link:hover { + opacity: 0.6; +} + +.resource-card__title { + margin: 0 0 8px; + font-size: 24px; + line-height: 1.18; +} + +.resource-card__text { + margin: 0; + font-family: var(--font-sans); + font-size: 15px; + line-height: 1.75; + color: var(--text); +} + +/* Shared FAQ */ +.faq { + max-width: 860px; + margin: 34px auto 0; +} + +.faq__item { + border-top: 1px solid var(--rule); +} + +.faq__item:last-child { + border-bottom: 1px solid var(--rule); +} + +.faq__q { + list-style: none; + cursor: pointer; + position: relative; + padding: 20px 0 20px 28px; + font-size: 20px; + line-height: 1.2; +} + +.faq__q::-webkit-details-marker { + display: none; +} + +.faq__q::before { + content: "+"; + position: absolute; + left: 0; + top: 20px; + font-family: var(--font-sans); + font-size: 18px; + line-height: 1; + color: var(--muted); +} + +.faq__item[open] .faq__q::before { + content: "–"; +} + +.faq__a { + padding: 0 0 20px 28px; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + color: var(--text); +} + +/* Shared CTA band */ +.cta-band { + background: #fff; + border-top: 1px solid var(--rule); + padding: clamp(56px, 7vw, 92px) 0; +} + +.cta-band__inner { + width: min(760px, calc(100% - 48px)); + margin: 0 auto; + text-align: center; +} + +.cta-band__title { + margin: 0 0 12px; + font-size: clamp(30px, 3vw, 44px); + line-height: 1.12; + text-wrap: balance; +} + +.cta-band__text { + margin: 0; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + color: var(--text); + text-wrap: pretty; +} + +.cta-band__actions { + margin-top: 24px; + display: flex; + gap: 12px; + justify-content: center; + align-items: center; + flex-wrap: wrap; + + .btn--secondary:hover { + background: #03236c !important; + color: white !important; + } +} + +/* Footer */ +.site-footer { + background: #fff; + border-top: 1px solid rgba(43, 42, 40, 0.1); +} + +.site-footer__inner { + padding: 22px 0 28px; +} + +.site-footer__fineprint { + margin: 0; + text-align: center; + font-family: var(--font-sans); + font-size: 12px; + line-height: 1.7; + letter-spacing: 0.06em; + text-transform: uppercase; + color: rgba(111, 106, 101, 0.88); +} + +.site-footer__fineprint a { + color: inherit; + text-decoration: none; +} + +.site-footer__fineprint a:hover { + color: var(--brand-blue); +} + +/* ========================================================= + 6. SHARED HERO SYSTEM +========================================================= */ + +.page-hero { + position: relative; + width: 100%; + min-height: clamp(520px, 76vh, 860px); + overflow: hidden; + isolation: isolate; + position: relative; + max-height: 720px; + overflow: hidden; + + display: flex; + align-items: center; + justify-content: center; +} + +@media (max-width: 767px) { + .page-hero { + min-height: 520px; + padding: 32px 0; + display: flex; + align-items: center; + justify-content: center; + } + + .page-hero__content { + width: calc(100% - 32px); + max-width: 320px; + margin: 0 auto; + padding: 28px 22px; + + background: rgba(255, 255, 255, 0.72); + backdrop-filter: blur(6px); + -webkit-backdrop-filter: blur(6px); + + border-radius: 8px; + } + + .page-hero__eyebrow { + font-size: 11px; + letter-spacing: 0.14em; + margin-bottom: 12px; + } + + .page-hero__title { + font-size: clamp(34px, 9vw, 46px); + line-height: 0.98; + margin-bottom: 14px; + } + + .page-hero__sub { + font-size: 15px; + line-height: 1.55; + margin: 0; + } +} + +.page-hero__media { + position: absolute; + inset: 0; + background-size: cover; + background-position: center center; + background-repeat: no-repeat; + transform: scale(1.01); +} + +.page-hero__overlay { + position: absolute; + inset: 0; + background: linear-gradient(to bottom, + rgba(255, 255, 255, 0.56) 0%, + rgba(255, 255, 255, 0.24) 42%, + rgba(255, 255, 255, 0.08) 100%); + z-index: 1; +} + +.page-hero__content { + position: relative; + z-index: 2; + max-width: 880px; + margin: 0 auto; + padding: clamp(2px, 12vh, 190px) 24px 88px; + text-align: center; + max-width: 620px; + padding: 40px 48px; + background: rgba(255, 255, 255, 0.46); + backdrop-filter: blur(8px); + border-radius: var(--radius-sm); + border: 1px solid rgba(0, 0, 0, 0.05); + box-shadow: var(--shadow-panel); +} + +.page-hero__eyebrow { + margin: 0 0 12px; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.16em; + text-transform: uppercase; + color: rgba(43, 42, 40, 0.56); +} + +.page-hero__title { + margin: 0; + max-width: 12ch; + margin-inline: auto; + font-size: clamp(40px, 3vw, 74px); + line-height: 0.98; + color: var(--ink); + text-wrap: balance; +} + +.page-hero__sub { + margin: 18px auto 0; + max-width: 54ch; + font-family: var(--font-sans); + font-size: 14px; + line-height: 1.8; + color: rgba(43, 42, 40, 0.72); + text-wrap: pretty; +} + + + +/* ========================================================= + 7. PAGE-SPECIFIC STYLES +========================================================= */ +.section--resources { + background: #edf1f3; //light blue +} + +.section--values { + background: #edf1f3; //light tan +} + +/* ---------- HOME ---------- */ +body.page--home { + + + + + + .page-hero__actions { + justify-content: center; + gap: 14px; + } + + + .page-hero__content { + + .btn { + background: #03236c; + margin-bottom: 10px; + + &:hover { + background: #1c4d96 !important; + } + } + + .btn--secondary { + background: white; + border: 1px solid #d9dce3 + } + + h1 { + text-shadow: 0 1px 2px rgba(0, 0, 0, .15); + } + + p { + color: rgba(0, 0, 0, 0.70); + opacity: .85; + + } + + .approach { + padding: 120px 24px; + + .container { + max-width: 1100px; + margin: 0 auto; + } + + &__grid { + display: grid; + grid-template-columns: 1.1fr 0.9fr; + gap: 80px; + align-items: center; + + @media (max-width: 900px) { + grid-template-columns: 1fr; + gap: 40px; + } + } + + &__content { + h2 { + font-family: "Playfair Display", serif; + font-size: clamp(32px, 3vw, 48px); + line-height: 1.2; + margin-bottom: 20px; + color: #2f2b28; + } + + p { + font-size: 18px; + line-height: 1.7; + color: #6f6a65; + max-width: 480px; + } + } + + &__image { + img { + width: 100%; + height: auto; + border-radius: 6px; + display: block; + } + } + } + } + + .section--process { + padding: clamp(56px, 0vw, 108px) 0; + } + + + + .page-hero__title { + max-width: 17ch; + } + + + .page-hero__sub { + margin: 30px 0; + font-weight: 500; + } + + .cta-band__actions { + margin-top: 24px; + display: block; + } + + + .section--intro { + padding-top: clamp(52px, 7vw, 84px); + padding-bottom: clamp(42px, 7vw, 64px); + } + + // .section--intro::after { + // content: ""; + // display: block; + // width: 70px; + // height: 1px; + // background: #d6d1cb; + // margin-top: 18px; + // } + + +} + +/* ---------- BUYERS + SELLERS PROCESS CARDS ---------- */ + +body.page--buyers, +body.page--sellers { + + .step-list { + list-style: none; + padding: 0; + margin: 34px 0 0; + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: 18px; + } + + .step { + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + padding: 22px 18px; + } + + .step__number { + font-family: var(--font-sans); + font-size: 11px; + letter-spacing: 0.18em; + text-transform: uppercase; + color: var(--muted); + margin-bottom: 6px; + } + + .step__number::after { + content: ""; + display: block; + width: 26px; + height: 1px; + background: rgba(0, 0, 0, 0.15); + margin-top: 6px; + } + + .step__title { + margin: 8px 0; + font-size: 22px; + line-height: 1.2; + } + + .step__text { + margin: 0; + font-family: var(--font-sans); + font-size: 15px; + line-height: 1.7; + color: var(--text); + } +} + +body.page--buyers { + .page-hero__overlay { + background: linear-gradient(to bottom, + rgba(255, 255, 255, 0.52) 0%, + rgba(255, 255, 255, 0.22) 42%, + rgba(255, 255, 255, 0.08) 100%); + } + + .page-hero__title { + max-width: 17ch; + } +} + +body.page--sellers { + .page-hero__title { + max-width: 18ch; + } + +} + +/* ---------- RESOURCES ---------- */ +body.page--resources { + .section--anchors { + padding-top: 0; + padding-bottom: 28px; + } + + + + .resource-pills { + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; + gap: 10px; + } + + .resource-pill { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 40px; + padding: 10px 16px; + border: 1px solid rgba(30, 79, 163, 0.28); + border-radius: var(--radius-pill); + background: rgba(255, 255, 255, 0.9); + color: var(--brand-blue); + text-decoration: none; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.1em; + text-transform: uppercase; + transition: + background-color 160ms ease, + border-color 160ms ease, + color 160ms ease, + transform 160ms ease; + } + + .resource-pill:hover { + background: rgba(30, 79, 163, 0.04); + border-color: rgba(30, 79, 163, 0.5); + color: #163d8f; + transform: translateY(-1px); + } + + .resource-group__header { + margin-bottom: 28px; + } + + .resource-group__eyebrow { + margin: 0 0 8px; + font-family: var(--font-sans); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--muted); + } + + .resource-group__lede { + margin: 0; + max-width: 680px; + text-align: left; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + color: var(--text); + } +} + +/* ---------- LISTINGS ---------- */ +body.page--listings { + .listing-hero { + background: var(--surface-warm); + } + + .listing-hero__grid { + display: grid; + grid-template-columns: 1.2fr 1fr; + min-height: 520px; + } + + .listing-hero__media { + min-height: 520px; + } + + .listing-hero__media a { + display: block; + height: 100%; + } + + .listing-hero__media img { + width: 100%; + height: 100%; + object-fit: cover; + } + + .listing-hero__content { + display: flex; + flex-direction: column; + justify-content: center; + padding: clamp(36px, 5vw, 64px); + background: var(--surface-warm); + } + + .listing-hero__eyebrow { + margin: 0 0 18px; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.18em; + text-transform: uppercase; + color: var(--muted); + } + + .listing-hero__title { + margin: 0 0 10px; + font-size: clamp(38px, 3vw, 64px); + line-height: 1.02; + text-wrap: balance; + } + + .listing-hero__address { + margin: 0 0 18px; + font-size: clamp(22px, 2.3vw, 32px); + line-height: 1.15; + } + + .listing-hero__meta { + display: flex; + flex-wrap: wrap; + gap: 10px 18px; + margin: 0 0 22px; + font-family: var(--font-sans); + font-size: 14px; + font-weight: 500; + letter-spacing: 0.04em; + text-transform: uppercase; + color: #7d766f; + } + + .listing-hero__meta span { + position: relative; + } + + .listing-hero__meta span:not(:last-child)::after { + content: "•"; + position: absolute; + right: -12px; + top: 0; + color: rgba(125, 118, 111, 0.75); + } + + .listing-hero__text { + max-width: 38ch; + margin: 0; + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.8; + color: var(--text); + } + + .listing-hero__actions { + margin-top: 28px; + display: flex; + gap: 14px; + flex-wrap: wrap; + + .btn--secondary:hover { + background: #03236c !important; + color: white !important; + } + } + + .listing-text-intro { + .listing-text p { + margin: 40px; + } + } + + .listing-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 22px; + margin-top: 34px; + } + + .listing-card { + display: flex; + flex-direction: column; + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + overflow: hidden; + transition: + transform 180ms ease, + border-color 180ms ease, + box-shadow 180ms ease; + } + + .listing-card:hover { + transform: translateY(-3px); + border-color: var(--rule-strong); + box-shadow: var(--shadow-card); + } + + .listing-card__image-link { + display: block; + text-decoration: none; + overflow: hidden; + } + + .listing-card__image { + width: 100%; + aspect-ratio: 4 / 3; + object-fit: cover; + transition: transform 260ms ease; + } + + .listing-card:hover .listing-card__image { + transform: scale(1.02); + } + + .listing-card__body { + display: flex; + flex-direction: column; + padding: 18px 18px 20px; + } + + .listing-card__price { + margin: 0 0 4px; + font-family: var(--font-sans); + font-size: 18px; + font-weight: 600; + line-height: 1.3; + color: var(--brand-blue); + } + + .listing-card__address { + margin: 0; + font-size: 24px; + line-height: 1.18; + text-wrap: balance; + } + + .listing-card__location { + margin: 4px 0 6px; + font-family: var(--font-sans); + font-size: 14px; + line-height: 1.6; + color: var(--muted); + } + + .listing-card__details { + margin: 0 0 14px; + font-family: var(--font-sans); + font-size: 14px; + line-height: 1.7; + color: var(--text); + } + + .listing-card__link { + display: inline-flex; + align-items: center; + gap: 8px; + margin-top: auto; + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.12em; + text-transform: uppercase; + text-decoration: none; + color: var(--brand-blue); + } + + .listing-card__link::after { + content: "→"; + font-size: 13px; + line-height: 1; + transition: transform 160ms ease; + } + + .listing-card__link:hover::after { + transform: translateX(2px); + } +} + +/* ---------- CONTACT ---------- */ +body.page--contact { + + .contact-layout { + display: grid; + grid-template-columns: 0.95fr 1.05fr; + gap: 34px; + align-items: start; + } + + .contact-info { + padding-top: 8px; + } + + .contact-info__eyebrow { + margin: 0 0 20px; + font-family: var(--font-sans); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--muted); + } + + .contact-info__title { + margin: 0 0 14px; + font-size: clamp(30px, 3vw, 46px); + line-height: 1.12; + text-wrap: balance; + } + + .contact-info__text, + .contact-method__value, + .contact-prompts__list { + font-family: var(--font-sans); + font-size: 16px; + line-height: 1.85; + color: var(--text); + } + + .contact-methods { + margin-top: 28px; + display: grid; + gap: 20px; + } + + .contact-method__label, + .contact-prompts__title { + margin: 0 0 4px; + font-family: var(--font-sans); + font-size: 11px; + font-weight: 500; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--muted); + } + + .contact-method__value a { + text-decoration: none; + } + + .contact-method__value a:hover { + color: var(--brand-blue); + } + + .contact-prompts { + margin-top: 30px; + padding-top: 24px; + border-top: 1px solid var(--rule); + } + + .contact-prompts__list { + margin: 0; + padding-left: 18px; + line-height: 1.9; + } + + .contact-form-wrap { + background: #fff; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + padding: 26px 24px; + box-shadow: var(--shadow-soft); + } + + .contact-form { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 18px; + } + + .contact-form__field { + display: flex; + flex-direction: column; + gap: 8px; + } + + .contact-form__field--full { + grid-column: 1 / -1; + } + + .contact-form label { + font-family: var(--font-sans); + font-size: 12px; + font-weight: 500; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--muted); + } + + .contact-form input, + .contact-form select, + .contact-form textarea { + width: 100%; + border: 1px solid var(--rule); + border-radius: var(--radius-sm); + background: #fff; + padding: 14px; + font-family: var(--font-sans); + font-size: 15px; + line-height: 1.5; + color: var(--ink); + transition: border-color 160ms ease, box-shadow 160ms ease; + } + + .contact-form input:focus, + .contact-form select:focus, + .contact-form textarea:focus { + outline: none; + border-color: rgba(30, 79, 163, 0.45); + box-shadow: 0 0 0 3px rgba(30, 79, 163, 0.08); + } + + .contact-form textarea { + resize: vertical; + min-height: 150px; + } + + .contact-form__actions { + grid-column: 1 / -1; + margin-top: 4px; + } +} + +body.page--thank-you { + .thank-you-section { + min-height: calc(100vh - 160px); + display: flex; + align-items: center; + justify-content: center; + padding: 72px 20px; + background: #f8f6f3; + } + + .thank-you-card { + width: min(720px, 100%); + background: rgba(255, 255, 255, 0.92); + border: 1px solid rgba(43, 42, 40, 0.10); + border-radius: 8px; + padding: 44px 40px; + text-align: center; + box-shadow: 0 16px 40px rgba(43, 42, 40, 0.05); + } + + .thank-you-card__eyebrow { + margin: 0 0 10px; + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 12px; + font-weight: 600; + letter-spacing: 0.14em; + text-transform: uppercase; + color: #8b847d; + } + + .thank-you-card__title { + margin: 0 0 14px; + font-family: "Playfair Display", serif; + font-size: clamp(38px, 5vw, 60px); + line-height: 1.05; + font-weight: 400; + color: #2b2a28; + text-wrap: balance; + } + + .thank-you-card__text { + max-width: 38ch; + margin: 0 auto 14px; + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 17px; + line-height: 1.8; + color: #6f6a65; + } + + .thank-you-card__text--small { + font-size: 15px; + color: #8b847d; + } + + .thank-you-card__text a { + color: inherit; + text-decoration: none; + } + + .thank-you-card__text a:hover { + color: #1e4fa3; + } + + .thank-you-card__actions { + margin-top: 22px; + display: flex; + justify-content: center; + gap: 12px; + flex-wrap: wrap; + } + + @media (max-width: 767px) { + .thank-you-card { + padding: 34px 22px; + } + + .thank-you-card__actions { + flex-direction: column; + align-items: center; + } + + .thank-you-card__actions .btn { + width: 100%; + max-width: 320px; + } + } +} + +/* ========================================================= + 8. RESPONSIVE +========================================================= */ + +@media (max-width: 768px) { + .site-logo .logo--desktop { + display: none; + } + + .site-logo .logo--mobile { + display: block; + margin-top: 0; + margin-left: 0; + } +} + +@media (max-width: 1100px) { + body.page--resources { + + .resource-grid, + .resource-grid--three { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } + + body.page--listings { + .listing-hero__grid { + grid-template-columns: 1fr; + } + + .listing-hero__media { + min-height: 360px; + } + + .listing-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } + + body.page--contact { + .contact-layout { + grid-template-columns: 1fr; + } + } +} + +@media (max-width: 767px) { + + .section__inner, + .site-footer__inner, + .cta-band__inner { + width: calc(100% - 28px); + } + + .page-hero { + min-height: 64vh; + } + + .page-hero__content { + padding: 110px 20px 64px; + } + + .page-hero__title { + font-size: clamp(30px, 10vw, 50px); + max-width: 10ch; + } + + .page-hero__sub { + font-size: 14px; + max-width: 30ch; + } + + .value-grid, + .resource-grid, + .resource-grid--three { + grid-template-columns: 1fr; + } + + .value-card--featured { + max-width: none; + } + + .cta-band__actions { + flex-direction: column; + } + + .btn { + width: 100%; + max-width: 320px; + } + + .faq__q { + font-size: 20px; + } + + .site-footer__fineprint { + line-height: 1.9; + } + + body.page--buyers, + body.page--sellers { + .step-list { + grid-template-columns: 1fr; + } + + + } + + body.page--resources { + + .section__title--left, + .section__lede--left, + .resource-group__lede { + text-align: center; + margin-left: auto; + margin-right: auto; + } + + .resource-card__title { + font-size: 22px; + } + } + + body.page--listings { + .listing-hero__content { + padding: 32px 24px 40px; + } + + .listing-hero__title { + font-size: clamp(32px, 9vw, 44px); + } + + .listing-hero__address { + font-size: 22px; + } + + .listing-hero__meta { + font-size: 13px; + gap: 8px 16px; + } + + .listing-hero__text { + max-width: none; + } + + .listing-hero__actions, + .cta-band__actions { + flex-direction: column; + } + + .listing-grid { + grid-template-columns: 1fr; + gap: 18px; + } + + .listing-card__address { + font-size: 22px; + } + + .listing-card__price { + font-size: 17px; + } + } + + + + + /* ========================================= + CONTACT FORM + ========================================= */ + + body.page--contact { + + + .contact-form-wrap { + background: #fff; + border: 1px solid rgba(43, 42, 40, 0.12); + border-radius: 8px; + padding: 28px 24px; + box-shadow: 0 8px 24px rgba(43, 42, 40, 0.04); + } + + .contact-form { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 18px 16px; + } + + .contact-form__field { + display: flex; + flex-direction: column; + gap: 8px; + } + + .contact-form__field--full { + grid-column: 1 / -1; + } + + .contact-form label { + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 12px; + font-weight: 600; + letter-spacing: 0.08em; + text-transform: uppercase; + color: #8b847d; + } + + .contact-form input, + .contact-form select, + .contact-form textarea { + width: 100%; + border: 1px solid rgba(43, 42, 40, 0.12); + border-radius: 6px; + background: #fff; + padding: 14px 14px; + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 15px; + line-height: 1.5; + color: #2b2a28; + transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; + appearance: none; + } + + .contact-form input::placeholder, + .contact-form textarea::placeholder { + color: #8f8983; + } + + .contact-form input:focus, + .contact-form select:focus, + .contact-form textarea:focus { + outline: none; + border-color: rgba(30, 79, 163, 0.45); + box-shadow: 0 0 0 3px rgba(30, 79, 163, 0.08); + } + + .contact-form select { + background-image: + linear-gradient(45deg, transparent 50%, #8b847d 50%), + linear-gradient(135deg, #8b847d 50%, transparent 50%); + background-position: + calc(100% - 18px) calc(50% - 2px), + calc(100% - 12px) calc(50% - 2px); + background-size: 6px 6px, 6px 6px; + background-repeat: no-repeat; + padding-right: 38px; + } + + .contact-form textarea { + min-height: 160px; + resize: vertical; + } + + .contact-form__actions { + grid-column: 1 / -1; + margin-top: 6px; + display: flex; + align-items: center; + gap: 12px; + flex-wrap: wrap; + } + + .contact-form__note { + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 13px; + line-height: 1.6; + color: #8b847d; + } + + .contact-form .btn { + min-width: 190px; + } + + /* Optional helper row if you add a short intro above the form */ + .contact-form__intro { + grid-column: 1 / -1; + margin-bottom: 4px; + padding-bottom: 14px; + border-bottom: 1px solid rgba(43, 42, 40, 0.08); + } + + .contact-form__intro-title { + margin: 0 0 6px; + font-family: "Playfair Display", serif; + font-size: 24px; + line-height: 1.2; + color: #2b2a28; + } + + .contact-form__intro-text { + margin: 0; + font-family: "Inter", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; + font-size: 15px; + line-height: 1.75; + color: #6f6a65; + } + + @media (max-width: 767px) { + .contact-form { + grid-template-columns: 1fr; + gap: 16px; + } + + .contact-form-wrap { + padding: 22px 18px; + } + + .contact-form__actions { + flex-direction: column; + align-items: stretch; + } + + .contact-form .btn { + width: 100%; + min-width: 0; + } + } + } + + .contact-form-wrap, + .value-card { + padding-left: 18px; + padding-right: 18px; + } +} \ No newline at end of file diff --git a/src/scss/styles.scss b/src/scss/styles.scss index 51adad70..18a4af4c 100644 --- a/src/scss/styles.scss +++ b/src/scss/styles.scss @@ -1,5 +1,5 @@ // Import Bootstrap @import "bootstrap/scss/bootstrap.scss"; - -// This template has no custom styling -// Insert any custom SCSS here! +@import "variables.scss"; +//@import "hero.scss"; +@import "styles-clean.scss"; \ No newline at end of file diff --git a/src/scss/variables.scss b/src/scss/variables.scss new file mode 100644 index 00000000..b36612b2 --- /dev/null +++ b/src/scss/variables.scss @@ -0,0 +1,26 @@ +// --------------------------------------------- +// Variables +// --------------------------------------------- +$hero-overlay: rgba(255, 255, 255, 0.40); +$hero-overlay-mobile: rgba(255, 255, 255, 0.4); + +$hero-title-color: #2f2c29; +$hero-text-color: #2f2c29; + +$brand-accent: #00205B; +$brand-accent-hover: #c07a64; +$brand-secondary-accent-hover: #f3eee6; +$brand-beige: #f3eee6; +$default-border-radius: 10px; +$button-border-radius: 5px; +$ink: #2f2f2f; +$muted: #6d6a66; +$card: #f3efe7; // warm sand +$stroke: rgba(0, 0, 0, .06); +$radius: 18px; +$line: rgba(0, 0, 0, 0.08); +$paper: #ffffff; +$card: #f2eee6; // warm sand +$chipBg: #fff; +$accent: #d6a08a; // your coral-ish +$shadow: 0 18px 40px rgba(0, 0, 0, 0.06); \ No newline at end of file