diff --git a/images/city-amsterdam.jpg b/images/city-amsterdam.jpg new file mode 100644 index 0000000..ef751d7 Binary files /dev/null and b/images/city-amsterdam.jpg differ diff --git a/images/city-boston.jpg b/images/city-boston.jpg new file mode 100644 index 0000000..1eb3f39 Binary files /dev/null and b/images/city-boston.jpg differ diff --git a/images/city-london.jpg b/images/city-london.jpg new file mode 100644 index 0000000..5250850 Binary files /dev/null and b/images/city-london.jpg differ diff --git a/images/city-mumbai.jpg b/images/city-mumbai.jpg new file mode 100644 index 0000000..9de244e Binary files /dev/null and b/images/city-mumbai.jpg differ diff --git a/images/city-saopaulo.jpg b/images/city-saopaulo.jpg new file mode 100644 index 0000000..837c266 Binary files /dev/null and b/images/city-saopaulo.jpg differ diff --git a/images/city-sydney.jpg b/images/city-sydney.jpg new file mode 100644 index 0000000..440de38 Binary files /dev/null and b/images/city-sydney.jpg differ diff --git a/index.html b/index.html index 8e2ee51..5a9030a 100644 --- a/index.html +++ b/index.html @@ -1,759 +1,384 @@ - - - - - ODOO4projects | Deploy Odoo in 5 Minutes — Fully Managed Hosting - - - - - - - - - - - - - - - - - - - -
-
-

Deploy Odoo in 5 Minutes — Fully Managed Hosting

-

- Launch a production-ready Odoo Community instance with automatic backups, - free SSL, and Git-based module management. No DevOps required. -

-
- 6 global locations - Deploy in 5 min - AI support included - Instant backups -
-
- See Plans & Pricing → - How It Works -
-
-
- - -
-
-

Trusted by businesses worldwide

- -
-
- - -
-
-
-
- -

5-Minute Deployment

-

No DevOps team needed. Pick a plan, choose your region, and your Odoo instance is live in minutes.

-
-
- -

Automatic Backups & SSL

-

Daily backups stored in redundant slots. Free SSL certificates on every domain — always secure.

-
-
- -

6 Global Locations

-

US, UK, Brazil, India, Australia, Netherlands. Choose your data region at deploy time.

-
-
- -

Git-Based Module Deployment

-

Push custom modules via Git or use one-click Quick Git. No FTP, no hassle.

-
-
- -

Support Bot & Human Support

-

AI support bot for instant fixes. Human team for everything else. Your UUID is your key.

-
-
-
-
- - -
-
-

Our Mission

-
- -
-
-

- Our Mission -

-

- Most Odoo hosting solutions stop at infrastructure. We bridge the gap with - hassle-free, enterprise-grade ODOO hosting that's fully - managed, secure, and built for growing businesses. -

-
    -
  1. - Automatic daily backups — stored in redundant slots - with FIFO rotation, so your data is always safe. -
  2. -
  3. - Free SSL on every domain — automatically provisioned - and renewed. No manual certificate management. -
  4. -
  5. - Git-based module deployment — push custom modules - via Git or use one-click Quick Git. No FTP, no hassle. -
  6. -
  7. - Full management through your ODOO Settings Panel - — no SSH, no terminal, no DevOps team required. -
  8. -
-

- We use modern automation, AI agents, and streamlined operations to deliver - fast support, reliable service, and a seamless customer experience. -

-
-
-

- Most hosting services treat ODOO Community like a budget option. - We treat it like what it is: a powerful ERP that deserves - enterprise-grade infrastructure — without the enterprise price tag. -

-

- AI-first, global from day one. Your instance is - ready to connect with AI tools and automation, deployed across - 6 world regions. Going global is a setting, not a project. -

-

- Built for business owners, not sysadmins. Our - custom server management tools handle deployment, scaling, and - maintenance so you never touch a command line. You focus on your - business — we keep ODOO running. -

-
-
-

- We don't build data centers. We partner with top-tier cloud providers - across 6 global regions and handle everything with fully automated - orchestration — so you get enterprise infrastructure without - the enterprise overhead. -

-
    -
  • - Easy to scale — add ODOO Workers as you grow, - no infrastructure changes needed. -
  • -
  • - Best backbone provider per region — we select the - optimal provider in each location for performance and reliability. -
  • -
  • - Automatic management, updates & audits — - daily security audits on all servers, with automated patching and - compliance checks. -
  • -
  • - Continuous performance monitoring — proactive - alerting and real-time metrics so issues are caught before they - affect you. -
  • -
-
-
-

How fast can I get started?
Pick a plan, choose your region — your instance is live in under 5 minutes.

-

Can I install custom modules?
Yes. Starting with On the Rise we fully support Git-based modules. Quick Git is included for one-click installs.

-

What if I outgrow my plan?
Upgrade instantly from your Odoo Settings panel. No data migration.

-

Can I run Odoo Enterprise?
Powerhouse and above are Enterprise-ready. You bring your license; we provide the infrastructure.

-

Full FAQ →

-
-
-
-
-
- - -
-
-

From Signup to Live Odoo in 3 Steps

-
-
-
1
-

Choose Your Plan

-

Side Hustle for small teams, Powerhouse for growing businesses. All plans include automatic backups and SSL.

-
-
-
2
-

Select Your Region

-

Pick from 6 global data locations. Your instance deploys in the region that works best for you.

-
-
-
3
-

Start Building

-

Install apps, configure modules, set up your workflows. Your Odoo is live and ready in minutes.

-
-
-
-
- - -
-
-
-

Your Plan, Your Timing: Upgrade Anytime

-
-
- Monthly 1 month free -
- Yearly up to -10% -
-
- -
-
-

Side Hustle

-
- $ 19.40 - / month - -
-

“ODOO Standard .. that is all my business needs”

- Buy Now -
    -
  • ODOO CE Hosting
  • -
  • Automatic Backups
  • -
  • Domain Mapping, SSL Cert
  • -
-
-
Instant setup, satisfied or reimbursed.
-
- - - -
-
-

Powerhouse

-
- $ 49.60 - / month - -
-

“ODOO Enterprise is a must have!”

- Buy Now -
    -
  • ODOO CE Hosting
  • -
  • Automatic Backups
  • -
  • 3 Domain Mapping, SSL Cert
  • -
  • Module installation via GIT / quickGIT
  • -
  • 2 Workers
  • -
  • 2GB HDD
  • -
-
-
Instant setup, satisfied or reimbursed.
-
- -
-
-

Empire

-
- >$ 80.00 - / month - -
-

“My house! My Horse! My Server!”

- Get Custom Quote -
    -
  • Our service on your server
  • -
  • All modules & features
  • -
  • Unlimited customization
  • -
  • Priority support & dedicated onboarding
  • -
-
-
Instant setup, satisfied or reimbursed.
-
-
-

🔒 Secure Stripe checkout · Cancel anytime · Satisfied or reimbursed

-
-
- - -
- + + + + + ODOO4projects | Deploy Odoo in 5 Minutes — Fully Managed Hosting + + + + + + + + + + + + + + + + + + + +
+
+
Fully Managed Odoo Hosting
+

Deploy Odoo in 5 Minutes — Fully Managed Hosting

+

Launch a production-ready Odoo Community instance with automatic backups, free SSL, and Git-based module management. No DevOps required.

+
+ 6 global locations + Deploy in 5 min + AI support included + Instant backups
+ +
+
- -
-
-
-

Latest from the Blog

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

The Concierge Standard

+

Everything you need, nothing you don't

+
+
+ +

5-Minute Deployment

+

No DevOps team needed. Pick a plan, choose your region, and your Odoo instance is live in minutes.

+
+
+ +

Automatic Backups & SSL

+

Daily backups stored in redundant slots. Free SSL certificates on every domain — always secure.

+
+
+ +

6 Global Locations

+

US, UK, Brazil, India, Australia, Netherlands. Choose your data region at deploy time.

+
+
+ +

Git-Based Module Deployment

+

Push custom modules via Git or use one-click Quick Git. No FTP, no hassle.

+
+
+ +

Support Bot & Human Support

+

AI support bot for instant fixes. Human team for everything else. Your UUID is your key.

+
+
+
+
+ + +
+
+

Guest Services

+

Frequently asked questions

+
+
+
How fast can I get started?
+

Pick a plan, choose your region — your instance is live in under 5 minutes. Instant setup, satisfied or reimbursed.

+
+
+
Can I install custom modules?
+

Yes. Starting with On the Rise we fully support Git-based modules. Quick Git is included for one-click installs.

+
+
+
What if I outgrow my plan?
+

Upgrade instantly from your Odoo Settings panel. No data migration, no downtime.

+
+
+
Can I run Odoo Enterprise?
+

Powerhouse and above are Enterprise-ready. You bring your license; we provide the infrastructure.

+
+
+
What's included in the free trial?
+

Use coupon FREE TRIAL at checkout for 1 month free on any plan. Full features, no limitations.

+
+
+
Do I need a credit card?
+

Yes, credit card is required at checkout. You can cancel anytime — satisfied or reimbursed.

+
+
+ Full FAQ → +
+
+ + +
+
+

Rates & Suites

+

Your Plan, Your Timing: Upgrade Anytime

+
+ Monthly 1 month free +
+ Yearly up to -10% +
+
+ +
+
+

Side Hustle

+
+ $ 19.40 + / month + +
+

“ODOO Standard .. that is all my business needs”

+ Buy Now +
    +
  • ODOO CE Hosting
  • +
  • Automatic Backups
  • +
  • Domain Mapping, SSL Cert
  • +
-
- - -
-
-

Ready to deploy your Odoo?

-

Pick a plan, choose your region, and your instance is live in under 5 minutes. No DevOps required.

- See Plans & Pricing → +
Instant setup, satisfied or reimbursed.
+
+ +
- - -
-
-
-
-

Useful Links

- -
-
-

About us

-

We build smart, scalable business solutions by combining the stability of Odoo ERP with the power of AI and N8N automation.

-

From streamlined sales to global rollouts, our lean, eco-friendly approach helps businesses cut costs, boost efficiency, and grow without limits.

-
-
-

Follow us on

- -
-
-
Copyright © ODOO4projects LLC
+
Instant setup, satisfied or reimbursed.
+
+ +
+
+

Powerhouse

+
+ $ 49.60 + / month + +
+

“ODOO Enterprise is a must have!”

+ Buy Now +
    +
  • ODOO CE Hosting
  • +
  • Automatic Backups
  • +
  • 3 Domain Mapping, SSL Cert
  • +
  • Module installation via GIT / quickGIT
  • +
  • 2 Workers
  • +
  • 2GB HDD
  • +
-
+
Instant setup, satisfied or reimbursed.
+
+ +
+
+

Empire

+
+ >$ 80.00 + / month + +
+

“My house! My Horse! My Server!”

+ Get Custom Quote +
    +
  • Our service on your server
  • +
  • All modules & features
  • +
  • Unlimited customization
  • +
  • Priority support & dedicated onboarding
  • +
+
+
Instant setup, satisfied or reimbursed.
+
+
+

🔒 Secure Stripe checkout · Cancel anytime · Satisfied or reimbursed

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

From the Desk

+

Latest from the Blog

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

Ready to check in?

+

Pick a plan, choose your region, and your instance is live in under 5 minutes. No DevOps required.

+ See Plans & Pricing → +
+
+ + + + + + + \ No newline at end of file diff --git a/style.css b/style.css index db8018d..e318c88 100644 --- a/style.css +++ b/style.css @@ -1,1224 +1,699 @@ -* { - box-sizing: border-box; -} +/* ========================================================= + ODOO4projects.com — The Grand Hotel Business Lounge + palette: midnight (#0d1b2e) · brass (#c9a227) · cream (#f4f0e8) · ivory (#faf7f1) + type: Marcellus (display) · Inter (body) + world: hotel concierge, global business lounge, brass plaques + ========================================================= */ + +* { box-sizing: border-box; } body { - margin: 0; - font-family: Inter, sans-serif; - font-size: 1rem; - line-height: 1.6; - color: #212529; - background: #fff; + margin: 0; + font-family: Inter, 'Segoe UI', sans-serif; + font-size: 1rem; + line-height: 1.6; + color: var(--ink); + background: var(--cream); } -h1, -h2, -h3 { - font-family: - Inter Tight, - sans-serif; - font-weight: 600; - line-height: 1.25; - margin-top: 0; - margin-bottom: 0.5rem; -} -h1 { - font-size: clamp(1.8rem, 3.2vw, 2.8rem); -} -h2 { - font-size: clamp(1.4rem, 2.56vw, 2rem); -} -h3 { - font-size: clamp(1.1rem, 2vw, 1.4rem); -} -p { - margin-top: 0; - margin-bottom: 1rem; -} -a { - color: #65435c; - text-decoration: none; -} -img { - max-width: 100%; - height: auto; - vertical-align: middle; +h1, h2, h3, h4 { + font-family: Marcellus, 'Georgia', serif; + font-weight: 400; + line-height: 1.15; + margin-top: 0; + margin-bottom: 0.5rem; } +h1 { font-size: clamp(2rem, 5vw, 3.6rem); } +h2 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); } +h3 { font-size: clamp(1.1rem, 2vw, 1.4rem); } +h4 { font-size: 1rem; } +p { margin-top: 0; margin-bottom: 1rem; } +a { color: var(--brass-deep); text-decoration: none; } +a:hover { color: var(--brass); } +img { max-width: 100%; height: auto; vertical-align: middle; } + :root { - --primary: #714b67; - --primary-hover: #65435c; - --secondary: #f0cda8; - --dark: #1b1319; - --light: #f6f5f4; - --border: #e5e3e0; - --success: #1a7f37; - --radius: 0.6rem; - --radius-lg: 1rem; - --shadow-rest: 0 2px 8px rgba(27, 19, 25, 0.07); - --shadow-hover: 0 14px 32px rgba(27, 19, 25, 0.14); - --shadow-primary: 0 8px 20px rgba(113, 75, 103, 0.28); - --shadow-featured: 0 10px 28px rgba(113, 75, 103, 0.18); -} -.container { - width: 80%; - padding: 0 20px; - margin: 0 auto; - max-width: 1300px; -} -@media (max-width: 768px) { - .container { - max-width: 100%; - } -} -.row { - display: flex; - flex-wrap: wrap; - margin: 0 -15px; -} -.col-lg-5 { - flex: 0 0 41.666%; - max-width: 41.666%; - padding: 0 15px; -} -.col-lg-6 { - flex: 0 0 50%; - max-width: 50%; - padding: 0 15px; -} -.col-lg-10 { - flex: 0 0 83.333%; - max-width: 83.333%; - padding: 0 15px; -} -.offset-lg-1 { - margin-left: 8.333%; -} -.offset-lg-6 { - margin-left: 50%; -} -@media (max-width: 992px) { - .col-lg-5, - .col-lg-6, - .col-lg-10 { - flex: 0 0 100%; - max-width: 100%; - } - .offset-lg-1, - .offset-lg-6 { - margin-left: 0; - } -} -.text-center { - text-align: center; -} -.d-none { - display: none !important; -} -.d-flex { - display: flex; -} -.align-items-center { - align-items: center; -} -.mb-4 { - margin-bottom: 1.5rem; -} -.mt-3 { - margin-top: 1rem; -} -.btn { - display: inline-block; - padding: 0.6rem 1.5rem; - font-size: 0.9rem; - font-weight: 500; - border: 1px solid transparent; - border-radius: 0.5rem; - cursor: pointer; - text-decoration: none; - transition: all 0.2s; -} -.btn-primary { - color: #fff; - background: var(--primary); - border-color: var(--primary); -} -.btn-primary:hover { - background: var(--primary-hover); - border-color: var(--primary-hover); - transform: translateY(-1px); - box-shadow: var(--shadow-primary); -} -.btn-outline-primary { - color: var(--primary-hover); - border-color: var(--primary-hover); - background: transparent; -} -.btn-outline-primary:hover { - color: #fff; - background: var(--primary-hover); - border-color: var(--primary-hover); - box-shadow: var(--shadow-primary); -} -.btn-lg { - padding: 0.75rem 2rem; - font-size: 1rem; - border-radius: 2rem; -} -.hr { - width: 3.5rem; - height: 3px; - background: linear-gradient(90deg, var(--primary), var(--secondary)); - border-radius: 2px; - margin: 0 auto 1rem; -} -.hero-carousel { - position: relative; - overflow: hidden; - min-height: 400px; -} -.hero-slide { - position: absolute; - inset: 0; - min-height: 400px; - display: flex; - align-items: center; - background-size: cover; - background-position: center; - transform: translateY(-100%); - opacity: 0; - transition: - transform 0.5s ease, - opacity 0.5s ease; - z-index: 1; -} -.hero-slide.active { - transform: translateY(0); - opacity: 1; - z-index: 2; -} -.hero-slide.prev { - transform: translateY(100%); - opacity: 0; - z-index: 1; -} -.hero-slide::before { - content: ""; - position: absolute; - inset: 0; - background: none; -} -.hero-box { - position: relative; - z-index: 2; - padding: 1.5rem; - border-radius: var(--radius); - background: rgba(27, 19, 25, 0.75); - color: #fff; - border: 1px solid rgba(255, 255, 255, 0.08); -} -.hero-box h2 { - color: #fff; - font-size: clamp(1rem, 2.2vw, 1.4rem); - margin-bottom: 0.3rem; -} -.hero-box p { - color: rgba(255, 255, 255, 0.9); - font-size: 0.9rem; - margin-bottom: 0.5rem; -} -.carousel-dots { - position: absolute; - bottom: 1rem; - left: 0; - right: 0; - display: flex; - justify-content: center; - gap: 0.5rem; - z-index: 3; -} -.carousel-dot { - width: 8px; - height: 8px; - border-radius: 50%; - border: none; - background: rgba(255, 255, 255, 0.35); - cursor: pointer; - transition: all 0.3s; -} -.carousel-dot.active { - background: rgba(255, 255, 255, 0.8); - transform: scale(1.2); -} -.arrow { - position: absolute; - top: 50%; - transform: translateY(-50%); - z-index: 3; - background: rgba(27, 19, 25, 0.5); - color: #fff; - border: none; - width: 2.5rem; - height: 2.5rem; - border-radius: 50%; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - transition: all 0.2s; -} -.arrow:hover { - background: rgba(27, 19, 25, 0.8); - transform: translateY(-50%) scale(1.05); -} -.arrow.left { - left: 1rem; -} -.arrow.right { - right: 1rem; -} -@media (max-width: 768px) { - .arrow { - display: none; - } -} -.stitle { - text-align: center; - padding: 2rem 0; -} -.stitle h1 { - font-size: clamp(1.12rem, 2.4vw, 1.6rem); - max-width: 720px; - margin: 0 auto; - color: var(--dark); -} -.tabs-section { - padding: 2rem 0; -} -.tabs-wrap { - display: flex; - gap: 2rem; -} -.tabs-nav { - flex: 0 0 220px; - max-width: 220px; - display: flex; - flex-direction: column; - gap: 0.25rem; -} -.tabs-content { - flex: 1; - min-height: 200px; - font-size: 1rem; - line-height: 1.7; -} -.tab-btn { - display: block; - padding: 0.6rem 1rem; - color: #212529; - border-radius: var(--radius); - border: none; - background: none; - width: 100%; - text-align: left; - font-size: 0.9rem; - font-weight: 500; - cursor: pointer; - transition: all 0.2s; -} -.tab-btn:hover { - background: var(--light); -} -.tab-btn.active { - background: linear-gradient( - 135deg, - rgba(113, 75, 103, 0.08), - rgba(113, 75, 103, 0.03) - ); - color: var(--primary); - font-weight: 600; - border-left: 3px solid var(--primary); -} -.tab-btn small { - display: block; - color: rgba(33, 37, 41, 0.55); - font-size: 0.72rem; - margin-top: 0.1rem; -} -.tab-btn.active small { - color: rgba(113, 75, 103, 0.6); -} -.tab-pane { - display: none; -} -.tab-pane.active { - display: block; -} -@media (max-width: 992px) { - .tabs-wrap { - flex-direction: column; - } - .tabs-nav { - flex: 0 0 100%; - max-width: 100%; - flex-direction: row; - overflow-x: auto; - padding-bottom: 0.5rem; - border-bottom: 1px solid var(--border); - } - .tab-btn { - white-space: nowrap; - width: auto; - border-left: none; - } - .tab-btn.active { - border-left: none; - border-bottom: 3px solid var(--primary); - } - .tab-btn small { - display: none; - } - .tabs-content { - flex: 0 0 100%; - max-width: 100%; - } -} -.psection { - padding: 2rem 0; - background: var(--light); -} -.pgrid { - display: grid; - grid-template-columns: repeat(4, 1fr); - gap: 1rem; -} -.pcard { - background: #fff; - border: 1px solid var(--border); - border-radius: var(--radius-lg); - overflow: hidden; - display: flex; - flex-direction: column; - transition: all 0.3s; - box-shadow: var(--shadow-rest); -} -.pcard:hover { - box-shadow: var(--shadow-hover); - transform: translateY(-4px); -} -.pcard.featured { - border: 2px solid var(--primary); - position: relative; - box-shadow: var(--shadow-featured); -} -.pcard.featured::before { - content: "Most Popular"; - position: absolute; - top: 0.75rem; - right: 0.75rem; - background: var(--primary); - color: #fff; - padding: 0.2rem 0.6rem; - border-radius: 2rem; - font-size: 0.6rem; - font-weight: 600; -} -.pcard-body { - padding: 1.25rem; - flex: 1; - display: flex; - flex-direction: column; -} -.pcard-body h3 { - font-size: 1.1rem; - font-weight: 700; -} -.pcard .price { - margin: 0.5rem 0; -} -.pcard .price strong { - font-size: clamp(1.28rem, 2vw, 1.92rem); - color: var(--dark); -} -.pcard .price small { - color: rgba(33, 37, 41, 0.55); - font-size: 0.82rem; -} -.pcard .desc { - font-size: 0.82rem; - color: rgba(33, 37, 41, 0.6); - min-height: 3rem; - font-style: italic; -} -.pcard-body ul { - flex-grow: 1; -} -.pcard .btn { - margin-bottom: 0.75rem; - width: 100%; - box-sizing: border-box; -} -.pcard ul { - list-style: none; - padding: 0; - margin: 0; -} -.pcard li { - padding: 0.4rem 0; - font-size: 0.82rem; - border-bottom: 1px solid rgba(0, 0, 0, 0.05); - display: flex; - align-items: center; - gap: 0.4rem; -} -.pcard li:last-child { - border-bottom: 0; -} -.pcard-foot { - padding: 0.6rem 1.25rem; - text-align: center; - border-top: 1px solid var(--border); - font-size: 0.78rem; - color: rgba(33, 37, 41, 0.55); -} -@media (max-width: 992px) { - .pgrid { - grid-template-columns: repeat(2, 1fr); - } -} -@media (max-width: 576px) { - .pgrid { - grid-template-columns: 1fr; - } -} -.trial { - padding: 3rem 0; - background: linear-gradient(135deg, #1b1319, #2a1d27); - color: #fff; -} -.trial h2 { - color: #fff; -} -.trial p { - color: rgba(255, 255, 255, 0.8); -} -.abanner { - padding: 2rem 0; - text-align: center; - background: #fff; -} -.abanner h2 { - font-size: clamp(1.12rem, 2.4vw, 1.6rem) !important; - max-width: 700px; - margin: 0 auto 0.5rem; -} -.footer { - background: var(--dark); - color: rgba(255, 255, 255, 0.85); - padding-top: 3rem; -} -.fgrid { - display: grid; - grid-template-columns: 1.5fr 3fr 3.5fr; - gap: 2rem; - padding-bottom: 2rem; - border-bottom: 1px solid rgba(255, 255, 255, 0.08); -} -.footer h4 { - color: #fff; - margin-bottom: 0.8rem; - font-weight: 600; - font-size: 1rem; -} -.footer ul { - list-style: none; - padding: 0; -} -.footer li { - margin-bottom: 0.3rem; -} -.footer a { - color: rgba(255, 255, 255, 0.65); - transition: color 0.2s; -} -.footer a:hover { - color: #fff; - text-decoration: none; -} -.footer p { - color: rgba(255, 255, 255, 0.7); - font-size: 0.85rem; - line-height: 1.7; -} -.footer strong { - color: #fff; -} -.footer .social a { - display: inline-flex; - align-items: center; - justify-content: center; - width: 2.5rem; - height: 2.5rem; - border-radius: 50%; - background: rgba(255, 255, 255, 0.08); - color: rgba(255, 255, 255, 0.7); - margin-right: 0.3rem; - transition: all 0.2s; -} -.footer .social a:hover { - background: var(--primary); - color: #fff; -} -.fform label { - font-weight: 500; - margin-bottom: 0.25rem; - display: block; - color: #fff; -} -.fform input { - display: block; - width: 100%; - padding: 0.5rem 0.8rem; - font-size: 0.85rem; - background: rgba(255, 255, 255, 0.08); - border: 1px solid rgba(255, 255, 255, 0.12); - border-radius: 0.5rem; - color: #fff; - margin-bottom: 0.75rem; -} -.fform input:focus { - outline: none; - border-color: var(--primary); -} -.fform input::placeholder { - color: rgba(255, 255, 255, 0.35); -} -.fcopy { - padding: 1rem 0; - text-align: center; - font-size: 0.82rem; - color: rgba(255, 255, 255, 0.5); -} -@media (max-width: 768px) { - .fgrid { - grid-template-columns: 1fr; - } - .footer { - padding-bottom: 5rem; - } + --midnight: #0d1b2e; + --midnight-2: #12233c; + --midnight-3: #162a45; + --brass: #c9a227; + --brass-bright: #ddb84a; + --brass-deep: #8a6f1f; + --cream: #f4f0e8; + --cream-2: #ece6da; + --ivory: #faf7f1; + --ink: #171c26; + --ink-soft: rgba(23,28,38,0.6); + --ink-faint: rgba(23,28,38,0.38); + --line: rgba(23,28,38,0.09); + --line-brass: rgba(201,162,39,0.25); + --success: #1e7a46; + --radius: 0.5rem; + --radius-lg: 1rem; + --radius-pill: 2rem; + --shadow-rest: 0 2px 8px rgba(13,27,46,0.08); + --shadow-hover: 0 12px 30px rgba(13,27,46,0.16); + --shadow-brass: 0 8px 20px rgba(201,162,39,0.25); } -/* ---- Order Widget ---- */ +/* ---- Layout ---- */ +.container { width: 86%; padding: 0 1.25rem; margin: 0 auto; max-width: 1200px; } +.text-center { text-align: center; } +.mb-1 { margin-bottom: 1rem; } +.mb-2 { margin-bottom: 2rem; } +.mb-3 { margin-bottom: 3rem; } + +/* ---- Buttons ---- */ +.btn { + display: inline-block; + padding: 0.7rem 2rem; + font-family: Marcellus, Georgia, serif; + font-size: 0.9rem; + letter-spacing: 0.04em; + text-transform: uppercase; + border: 1px solid transparent; + border-radius: var(--radius); + cursor: pointer; + text-decoration: none; + transition: all 0.25s; +} +.btn-brass { + background: var(--brass); + color: var(--midnight); + border-color: var(--brass); +} +.btn-brass:hover { + background: var(--brass-bright); + border-color: var(--brass-bright); + transform: translateY(-1px); + box-shadow: var(--shadow-brass); +} +.btn-outline { + background: transparent; + color: var(--cream); + border-color: var(--line-brass); +} +.btn-outline:hover { + border-color: var(--brass); + color: var(--brass); + background: rgba(201,162,39,0.08); +} +.btn-lg { padding: 0.85rem 2.5rem; font-size: 1rem; } + +/* ---- Hero ---- */ +.hero { + background: var(--midnight); + padding: 4rem 0 0; + position: relative; + overflow: hidden; + min-height: 85vh; + display: flex; + flex-direction: column; +} +.hero::after { + content: ''; + position: absolute; + inset: 0; + background: url('images/city-amsterdam.jpg') center/cover no-repeat; + opacity: 0.12; + z-index: 0; +} +.hero .container { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; justify-content: center; } +.hero-kicker { + font-family: Inter, sans-serif; + font-size: 0.72rem; + font-weight: 600; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--brass); + margin-bottom: 0.75rem; +} +.hero h1 { + color: #fff; + max-width: 700px; + margin-bottom: 1rem; + font-weight: 400; +} +.hero h1 span { color: var(--brass); } +.hero-sub { + font-size: 1.05rem; + color: rgba(255,255,255,0.7); + max-width: 560px; + line-height: 1.7; + margin-bottom: 1.5rem; +} +.hero-stats { + display: flex; + gap: 1.5rem; + margin-bottom: 2rem; + flex-wrap: wrap; +} +.hero-stat { + display: flex; + align-items: center; + gap: 0.4rem; + color: rgba(255,255,255,0.65); + font-size: 0.85rem; +} +.hero-stat i { color: var(--brass); font-size: 0.75rem; } +.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2rem; } + +/* ---- City Placards ---- */ +.city-placards { + display: flex; + gap: 0.75rem; + padding: 0 1.25rem; + margin: 0 auto; + max-width: 1200px; + width: 86%; + overflow-x: auto; + padding-bottom: 0.5rem; + position: relative; + z-index: 1; +} +.city-placard { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.3rem; + text-decoration: none; + flex-shrink: 0; + width: 8rem; + padding: 0.75rem 0.5rem 0.5rem; + border-top: 1px solid var(--line-brass); + transition: all 0.25s; + border-radius: 0 0 var(--radius) var(--radius); +} +.city-placard:hover { + background: rgba(201,162,39,0.08); + border-top-color: var(--brass); +} +.city-placard img { + width: 3.5rem; + height: 3.5rem; + border-radius: 50%; + object-fit: cover; + border: 2px solid var(--line-brass); + transition: border-color 0.25s; +} +.city-placard:hover img { border-color: var(--brass); } +.city-placard .city-name { + font-family: Marcellus, Georgia, serif; + font-size: 0.85rem; + color: #fff; + line-height: 1.2; +} +.city-placard .city-region { + font-family: Inter, sans-serif; + font-size: 0.62rem; + letter-spacing: 0.06em; + text-transform: uppercase; + color: rgba(255,255,255,0.5); +} + +@media (max-width: 768px) { + .hero { min-height: auto; padding: 3rem 0 0; } + .city-placards { width: 100%; padding: 0 1rem 0.5rem; gap: 0.5rem; } + .city-placard { width: 6rem; padding: 0.5rem 0.25rem; } + .city-placard img { width: 2.8rem; height: 2.8rem; } + .hero-actions { flex-direction: column; } + .hero-actions .btn { width: 100%; text-align: center; } + .hero-stats { gap: 0.75rem; } +} + +/* ---- Trust Bar ---- */ +.trust-bar { + background: var(--cream); + padding: 1.5rem 0; + border-bottom: 1px solid var(--line); + overflow: hidden; +} +.trust-bar .trust-label { + font-family: Inter, sans-serif; + font-size: 0.7rem; + font-weight: 600; + letter-spacing: 0.12em; + text-transform: uppercase; + color: var(--ink-soft); + text-align: center; + margin-bottom: 1rem; +} +.partner-carousel-wrap { overflow: hidden; width: 100%; max-width: 1080px; margin: 0 auto; } +.partner-grid { + display: flex; + align-items: center; + gap: 3rem; + width: max-content; + animation: partnerScroll 40s linear infinite; +} +.partner-carousel-wrap:hover .partner-grid { animation-play-state: paused; } +@keyframes partnerScroll { + 0% { transform: translateX(0); } + 100% { transform: translateX(-50%); } +} +.partner-item { + display: flex; + align-items: center; + gap: 0.6rem; + text-decoration: none; + color: var(--ink-soft); + font-size: 0.85rem; + font-weight: 500; + white-space: nowrap; + transition: opacity 0.2s; + flex-shrink: 0; +} +.partner-item:hover { opacity: 0.7; } +.partner-item img { width: 44px; height: 44px; border-radius: 8px; object-fit: contain; } +@media (max-width: 768px) { + .partner-grid { gap: 2rem; } + .partner-item img { width: 38px; height: 38px; } +} + +/* ---- Section rhythm ---- */ +.section-light { background: var(--cream); padding: 3.5rem 0; } +.section-dark { background: var(--midnight); padding: 3.5rem 0; } +.section-dark h2 { color: #fff; } +.section-kicker { + font-family: Inter, sans-serif; + font-size: 0.68rem; + font-weight: 600; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--brass); + margin-bottom: 0.5rem; + text-align: center; +} +.section-title { text-align: center; margin-bottom: 2rem; color: var(--ink); } +.section-dark .section-title { color: #fff; } + +/* ---- Features ---- */ +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 1.5rem; +} +.feature-card { + background: var(--ivory); + border: 1px solid var(--line); + border-radius: var(--radius-lg); + padding: 1.5rem; + text-align: center; + transition: all 0.25s; + box-shadow: var(--shadow-rest); +} +.feature-card:hover { + box-shadow: var(--shadow-hover); + transform: translateY(-3px); +} +.feature-card i { + font-size: 1.5rem; + color: var(--brass); + margin-bottom: 0.75rem; + display: inline-flex; + align-items: center; + justify-content: center; + width: 3rem; + height: 3rem; + border-radius: 50%; + background: rgba(201,162,39,0.1); + border: 1px solid var(--line-brass); +} +.feature-card h3 { + font-size: 1.05rem; + font-weight: 400; + margin-bottom: 0.35rem; + color: var(--ink); +} +.feature-card p { + font-size: 0.85rem; + color: var(--ink-soft); + margin: 0; + line-height: 1.6; +} + +/* ---- FAQ ---- */ +.faq-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1rem; + max-width: 900px; + margin: 0 auto; +} +.faq-card { + background: var(--ivory); + border: 1px solid var(--line); + border-radius: var(--radius-lg); + padding: 1.25rem; + cursor: pointer; + transition: all 0.25s; + box-shadow: var(--shadow-rest); +} +.faq-card:hover { box-shadow: var(--shadow-hover); } +.faq-q { + font-family: Marcellus, Georgia, serif; + font-size: 0.95rem; + color: var(--midnight); + display: flex; + justify-content: space-between; + align-items: center; + gap: 0.5rem; +} +.faq-q i { + color: var(--brass); + font-size: 0.75rem; + transition: transform 0.25s; + flex-shrink: 0; +} +.faq-card.open .faq-q i { transform: rotate(180deg); } +.faq-a { + font-size: 0.85rem; + color: var(--ink-soft); + line-height: 1.7; + max-height: 0; + overflow: hidden; + transition: max-height 0.3s, padding 0.3s; +} +.faq-card.open .faq-a { + max-height: 300px; + padding-top: 0.75rem; +} +.faq-a p:last-child { margin-bottom: 0; } +.faq-link { + display: block; + text-align: center; + margin-top: 1.5rem; + font-size: 0.85rem; + color: var(--brass-deep); + font-weight: 500; +} +@media (max-width: 768px) { + .faq-grid { grid-template-columns: 1fr; } +} + +/* ---- Pricing ---- */ +.pricing-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1rem; +} +.pcard { + background: var(--ivory); + border: 1px solid var(--line); + border-radius: var(--radius-lg); + overflow: hidden; + display: flex; + flex-direction: column; + transition: all 0.3s; + box-shadow: var(--shadow-rest); +} +.pcard:hover { + box-shadow: var(--shadow-hover); + transform: translateY(-4px); +} +.pcard.featured { + border: 2px solid var(--brass); + position: relative; + box-shadow: 0 8px 24px rgba(201,162,39,0.15); +} +.pcard.featured::before { + content: "Most Popular"; + position: absolute; + top: 0.75rem; + right: 0.75rem; + background: var(--brass); + color: var(--midnight); + padding: 0.2rem 0.7rem; + border-radius: 2rem; + font-size: 0.6rem; + font-weight: 700; + letter-spacing: 0.04em; + text-transform: uppercase; + font-family: Inter, sans-serif; +} +.pcard-body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; } +.pcard-body h3 { font-family: Marcellus, Georgia, serif; font-size: 1.1rem; color: var(--ink); } +.pcard .price { margin: 0.5rem 0; } +.pcard .price strong { font-size: clamp(1.28rem, 2vw, 1.92rem); color: var(--midnight); } +.pcard .price small { color: var(--ink-soft); font-size: 0.82rem; } +.pcard .desc { font-size: 0.82rem; color: var(--ink-soft); min-height: 3rem; font-style: italic; } +.pcard-body ul { list-style: none; padding: 0; margin: 0; flex-grow: 1; } +.pcard li { padding: 0.4rem 0; font-size: 0.82rem; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 0.4rem; } +.pcard li:last-child { border-bottom: 0; } +.pcard .btn { margin-bottom: 0.75rem; width: 100%; box-sizing: border-box; } +.pcard-foot { + padding: 0.6rem 1.25rem; + text-align: center; + border-top: 1px solid var(--line); + font-size: 0.78rem; + color: var(--ink-soft); +} +.price-save { + font-size: 0.72rem; + font-weight: 700; + color: var(--success); + margin-top: 0.15rem; +} +/* Billing Toggle */ +.billing-toggle-wrap { + display: flex; + align-items: center; + justify-content: center; + gap: 0.75rem; + margin-bottom: 1.5rem; +} +.toggle-label { + font-size: 0.82rem; + font-weight: 500; + color: rgba(255,255,255,0.5); + cursor: pointer; + transition: color 0.2s; + user-select: none; +} +.toggle-label.active { color: #fff; font-weight: 600; } +.toggle-label small { + display: block; + font-size: 0.72rem; + font-weight: 500; + color: var(--success); + margin-top: 0.1rem; +} +.toggle-switch { + width: 48px; + height: 26px; + background: rgba(255,255,255,0.15); + border-radius: 13px; + cursor: pointer; + position: relative; + transition: background 0.25s; + flex-shrink: 0; +} +.toggle-switch.yearly { background: var(--brass); } +.toggle-switch .thumb { + position: absolute; + top: 3px; + left: 3px; + width: 20px; + height: 20px; + background: #fff; + border-radius: 50%; + transition: left 0.25s; + box-shadow: 0 1px 3px rgba(0,0,0,0.15); +} +.toggle-switch.yearly .thumb { left: 25px; } +.price-period { color: var(--ink-soft); font-size: 0.68rem; } +.pricing-cta-note { + text-align: center; + margin-top: 1rem; + font-size: 0.82rem; + color: rgba(255,255,255,0.5); +} +.pricing-cta-note strong { color: var(--brass); } + +/* ---- Order Widget (restyled) ---- */ .ow-overlay { - position: fixed; - inset: 0; - z-index: 999; - display: none; - background: rgba(0,0,0,0.6); - align-items: center; - justify-content: center; - cursor: pointer; + position: fixed; inset: 0; z-index: 999; display: none; + background: rgba(13,27,46,0.85); + align-items: center; justify-content: center; + cursor: pointer; } .ow-panel { - background: #fff; - border-radius: 1rem; - max-width: 460px; - width: 90%; - overflow: hidden; - position: relative; - cursor: default; - box-shadow: 0 20px 60px rgba(0,0,0,0.25); + background: var(--ivory); + border-radius: var(--radius-lg); + max-width: 460px; width: 90%; + overflow: hidden; position: relative; + cursor: default; + box-shadow: 0 24px 64px rgba(0,0,0,0.4); } .ow-close { - position: absolute; - top: 0.75rem; - right: 0.75rem; - z-index: 10; - background: #fff; - border: 1px solid var(--border); - width: 2.8rem; - height: 2.8rem; - border-radius: 50%; - cursor: pointer; - font-size: 1.4rem; - box-shadow: 0 2px 8px rgba(0,0,0,0.1); - color: #555; - display: flex; - align-items: center; - justify-content: center; - transition: all 0.2s; + position: absolute; top: 0.75rem; right: 0.75rem; z-index: 10; + background: var(--ivory); + border: 1px solid var(--line); + width: 2.8rem; height: 2.8rem; + border-radius: 50%; cursor: pointer; + font-size: 1.4rem; color: var(--ink-soft); + display: flex; align-items: center; justify-content: center; + transition: all 0.2s; } -.ow-close:hover { - background: var(--light); - color: var(--dark); - transform: scale(1.05); +.ow-close:hover { background: var(--cream); color: var(--ink); } +.ow-content { padding: 2rem; } +.ow-title { font-family: Marcellus, Georgia, serif; font-size: clamp(1rem, 2vw, 1.24rem); margin-bottom: 0.5rem; color: var(--midnight); } +.ow-price { font-size: 0.85rem; color: var(--ink-soft); margin-bottom: 1rem; } +.ow-price .ow-price-amount { font-size: 1rem; font-weight: 600; color: var(--midnight); } +.ow-price .ow-price-tax { font-size: 0.72rem; color: var(--ink-faint); } +.ow-coupon-msg { font-size: 0.78rem; color: var(--success); margin-bottom: 1rem; display: none; } +.ow-yearly-save { font-size: 0.78rem; color: var(--success); margin-bottom: 1rem; display: none; } +.ow-field-label { font-size: 0.78rem; font-weight: 500; display: block; margin-bottom: 0.25rem; color: var(--ink); } +.ow-select { width: 100%; padding: 0.6rem 0.8rem; font-size: 0.85rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--ivory); color: var(--ink); margin-bottom: 1.5rem; font-family: Inter, sans-serif; cursor: pointer; transition: border-color 0.2s; } +.ow-select:focus { border-color: var(--brass); outline: none; } +.ow-coupon-row { display: flex; gap: 0.5rem; margin-bottom: 1rem; } +.ow-input { flex: 1; padding: 0.55rem 0.8rem; font-size: 0.85rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--ivory); color: var(--ink); font-family: Inter, sans-serif; transition: border-color 0.2s; } +.ow-input:focus { border-color: var(--brass); outline: none; } +.ow-btn-apply { padding: 0.55rem 1rem; font-size: 0.78rem; background: var(--brass); color: var(--midnight); border: none; border-radius: var(--radius); cursor: pointer; font-family: Inter, sans-serif; font-weight: 600; transition: all 0.2s; } +.ow-btn-apply:hover { background: var(--brass-bright); } +.ow-coupon-status { font-size: 0.75rem; margin-top: 0.3rem; display: none; } +.ow-buy { width: 100%; text-align: center; display: block; box-sizing: border-box; } +.ow-note { font-size: 0.72rem; color: var(--ink-faint); text-align: center; margin-top: 0.6rem; } + +/* ---- Blog ---- */ +.blog-section { padding: 3.5rem 0; } +.blog-section-light { background: var(--cream); } +.blog-section-light h2 { color: var(--ink); } +.blog-search-wrap { max-width: 500px; margin: 0 auto 2rem; } +.blog-search { + width: 100%; padding: 0.75rem 1rem; + font-size: 0.85rem; font-family: Inter, sans-serif; + background: var(--ivory); border: 1px solid var(--line); border-radius: var(--radius); + color: var(--ink); outline: none; + transition: border-color 0.2s; } -.ow-content { - padding: 2rem; +.blog-search:focus { border-color: var(--brass); box-shadow: 0 0 0 2px rgba(201,162,39,0.15); } +.blog-search::placeholder { color: var(--ink-faint); } +.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-bottom: 2rem; } +.blog-card { + background: var(--ivory); border: 1px solid var(--line); border-radius: var(--radius-lg); + padding: 1.25rem; display: flex; flex-direction: column; + transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s; + box-shadow: var(--shadow-rest); } -.ow-title { - font-size: clamp(1rem, 2vw, 1.24rem); - margin-bottom: 0.5rem; - color: var(--dark); +.blog-card:hover { + transform: translateY(-2px); + border-color: var(--brass); + box-shadow: var(--shadow-hover); } -.ow-price { - font-size: 0.8rem; - color: rgba(33,37,41,0.6); - margin-bottom: 1rem; +.blog-card-top { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; flex-wrap: wrap; } +.blog-badge { + display: inline-block; padding: 0.2rem 0.6rem; border-radius: 3rem; + font-size: 0.7rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; + font-family: Inter, sans-serif; color: var(--midnight); } -.ow-price .ow-price-amount { - font-size: 1rem; - font-weight: 600; - color: var(--dark); +.blog-badge-speed-run { background: #d9c4a8; } +.blog-badge-guide { background: #c9b8a2; } +.blog-badge-howto { background: #c9a227; } +.blog-badge-news { background: #c9b8a2; } +.blog-badge-default { background: #c9b8a2; } +.blog-agent { + display: inline-block; padding: 0.2rem 0.55rem; border-radius: 3rem; + font-size: 0.7rem; font-weight: 600; font-family: Inter, sans-serif; + background: rgba(201,162,39,0.15); color: var(--brass-deep); + border: 1px solid rgba(201,162,39,0.25); } -.ow-price .ow-price-tax { - font-size: 0.7rem; - color: rgba(33,37,41,0.45); -} -.ow-coupon-msg { - font-size: 0.78rem; - color: var(--success); - margin-bottom: 1rem; - display: none; -} -.ow-yearly-save { - font-size: 0.78rem; - color: var(--success); - margin-bottom: 1rem; - display: none; -} -.ow-field-label { - font-size: 0.78rem; - font-weight: 500; - display: block; - margin-bottom: 0.25rem; - color: var(--dark); -} -.ow-select { - width: 100%; - padding: 0.6rem 0.8rem; - font-size: 0.85rem; - border: 1px solid var(--border); - border-radius: 0.5rem; - background: #fff; - color: var(--dark); - margin-bottom: 1.5rem; - font-family: Inter, sans-serif; - cursor: pointer; - transition: border-color 0.2s; -} -.ow-select:focus { - border-color: var(--primary); - outline: none; -} -.ow-coupon-row { - display: flex; - gap: 0.5rem; - margin-bottom: 1rem; -} -.ow-input { - flex: 1; - padding: 0.55rem 0.8rem; - font-size: 0.85rem; - border: 1px solid var(--border); - border-radius: 0.5rem; - background: #fff; - color: var(--dark); - font-family: Inter, sans-serif; - transition: border-color 0.2s; -} -.ow-input:focus { - border-color: var(--primary); - outline: none; -} -.ow-btn-apply { - padding: 0.55rem 1rem; - font-size: 0.78rem; - background: var(--primary); - color: #fff; - border: none; - border-radius: 0.5rem; - cursor: pointer; - font-family: Inter, sans-serif; - font-weight: 500; - transition: all 0.2s; -} -.ow-btn-apply:hover { - background: var(--primary-hover); -} -.ow-coupon-status { - font-size: 0.75rem; - margin-top: 0.3rem; - display: none; -} -.ow-buy { - width: 100%; - text-align: center; - display: block; - box-sizing: border-box; -} -.ow-note { - font-size: 0.72rem; - color: rgba(33,37,41,0.45); - text-align: center; - margin-top: 0.6rem; +.blog-date { font-size: 0.82rem; color: var(--ink-faint); margin-bottom: 0.4rem; } +.blog-card h3 { margin: 0 0 0.5rem; } +.blog-card h3 a { font-family: Marcellus, Georgia, serif; font-size: 1.05rem; font-weight: 400; line-height: 1.3; color: var(--ink); text-decoration: none; transition: color 0.2s; } +.blog-card h3 a:hover { color: var(--brass-deep); } +.blog-teaser { font-size: 0.85rem; color: var(--ink-soft); line-height: 1.55; margin: 0 0 1rem; flex: 1; } +.blog-readmore { font-size: 0.85rem; color: var(--brass-deep); text-decoration: none; font-weight: 500; transition: opacity 0.2s; margin-top: auto; } +.blog-readmore:hover { opacity: 0.75; } +.blog-empty { grid-column: 1 / -1; text-align: center; padding: 2rem; color: var(--ink-faint); font-size: 0.9rem; } +.blog-pagination { display: flex; align-items: center; justify-content: center; gap: 0.75rem; padding: 1rem 0; } +.blog-page-btn { + padding: 0.4rem 1rem; font-size: 0.85rem; font-family: Inter, sans-serif; + background: var(--ivory); border: 1px solid var(--line); border-radius: var(--radius); + color: var(--ink); cursor: pointer; transition: border-color 0.2s, background 0.2s; } +.blog-page-btn:hover:not(:disabled) { border-color: var(--brass); background: rgba(201,162,39,0.08); } +.blog-page-btn:disabled { opacity: 0.3; cursor: default; } +.blog-page-info { font-size: 0.78rem; color: var(--ink-faint); } +@media (max-width: 992px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } } +@media (max-width: 576px) { .blog-grid { grid-template-columns: 1fr; } } /* ---- Final CTA ---- */ .final-cta { - padding: 4rem 0; - background: linear-gradient(135deg, #1b1319, #2a1a26, #3d2235); - text-align: center; - position: relative; - overflow: hidden; + padding: 4rem 0; + background: var(--midnight); + text-align: center; + position: relative; + overflow: hidden; } .final-cta::after { - content: ''; - position: absolute; - inset: 0; - background: url('images/holland.webp') center/cover no-repeat; - opacity: 0.06; - z-index: 0; + content: ''; + position: absolute; + inset: 0; + background: url('images/city-amsterdam.jpg') center/cover no-repeat; + opacity: 0.06; + z-index: 0; } -.final-cta .container { - position: relative; - z-index: 1; +.final-cta .container { position: relative; z-index: 1; } +.final-cta h2 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); color: #fff; margin-bottom: 0.75rem; } +.final-cta p { font-size: 1.05rem; color: rgba(255,255,255,0.7); max-width: 520px; margin: 0 auto 1.5rem; line-height: 1.7; } + +/* ---- Footer ---- */ +.footer { + background: var(--midnight); + color: rgba(255,255,255,0.8); + padding-top: 3rem; } -.final-cta h2 { - font-size: clamp(1.6rem, 3.2vw, 2.4rem); - font-weight: 800; - color: #fff; - margin-bottom: 0.75rem; +.fgrid { + display: grid; + grid-template-columns: 1.5fr 3fr 3.5fr; + gap: 2rem; + padding-bottom: 2rem; + border-bottom: 1px solid var(--line-brass); } -.final-cta p { - font-size: 1.05rem; - color: rgba(255,255,255,0.7); - max-width: 520px; - margin: 0 auto 1.5rem; - line-height: 1.7; +.footer h4 { font-family: Marcellus, Georgia, serif; color: #fff; margin-bottom: 0.8rem; font-size: 1rem; } +.footer ul { list-style: none; padding: 0; } +.footer li { margin-bottom: 0.3rem; } +.footer a { color: rgba(255,255,255,0.6); transition: color 0.2s; } +.footer a:hover { color: var(--brass); } +.footer p { color: rgba(255,255,255,0.65); font-size: 0.85rem; line-height: 1.7; } +.footer strong { color: #fff; } +.footer .social a { + display: inline-flex; align-items: center; justify-content: center; + width: 2.5rem; height: 2.5rem; border-radius: 50%; + background: rgba(255,255,255,0.08); + color: rgba(255,255,255,0.6); + margin-right: 0.3rem; transition: all 0.2s; } -.final-cta .btn-hero { - display: inline-block; - padding: 0.85rem 2.5rem; - background: var(--secondary); - color: var(--dark); - border-radius: 0.5rem; - font-family: "Inter Tight", sans-serif; - font-size: 1rem; - font-weight: 700; - text-decoration: none; - transition: opacity 0.2s, transform 0.2s, box-shadow 0.2s; -} -.final-cta .btn-hero:hover { - opacity: 0.9; - transform: translateY(-2px); - box-shadow: 0 8px 24px rgba(113, 75, 103, 0.3); -} -.spinner-overlay { - position: absolute; - inset: 0; - display: flex; - align-items: center; - justify-content: center; - background: var(--dark); - z-index: 5; - transition: opacity 0.5s; -} -.spinner-overlay.hidden { - opacity: 0; - pointer-events: none; -} -.spinner { - width: 2rem; - height: 2rem; - border: 3px solid rgba(255, 255, 255, 0.15); - border-top-color: #fff; - border-radius: 50%; - animation: spin 0.8s linear infinite; -} -@keyframes spin { - to { - transform: rotate(360deg); - } +.footer .social a:hover { background: var(--brass); color: var(--midnight); } +.fcopy { padding: 1rem 0; text-align: center; font-size: 0.82rem; color: rgba(255,255,255,0.4); } +@media (max-width: 768px) { + .fgrid { grid-template-columns: 1fr; } + .footer { padding-bottom: 5rem; } } -/* ---- Billing Toggle ---- */ -.billing-toggle-wrap { - display: flex; - align-items: center; - justify-content: center; - gap: 0.75rem; - margin-bottom: 1.5rem; -} -.toggle-label { - font-size: 0.82rem; - font-weight: 500; - color: rgba(33, 37, 41, 0.6); - cursor: pointer; - transition: color 0.2s; - user-select: none; -} -.toggle-label.active { - color: var(--dark); - font-weight: 600; -} -.toggle-label small { - display: block; - font-size: 0.72rem; - font-weight: 500; - color: var(--success); - margin-top: 0.1rem; -} -.toggle-switch { - width: 48px; - height: 26px; - background: var(--border); - border-radius: 13px; - cursor: pointer; - position: relative; - transition: background 0.25s; - flex-shrink: 0; -} -.toggle-switch.yearly { - background: var(--primary); -} -.toggle-switch .thumb { - position: absolute; - top: 3px; - left: 3px; - width: 20px; - height: 20px; - background: #fff; - border-radius: 50%; - transition: left 0.25s; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); -} -.toggle-switch.yearly .thumb { - left: 25px; -} -.price-save { - font-size: 0.72rem; - font-weight: 700; - color: var(--success); - margin-top: 0.15rem; -} -.price-period { - color: rgba(33, 37, 41, 0.55); - font-size: 0.68rem; -} -/* ---- Partner Banner ---- */ -.partner-banner { - padding: 2rem 0; - background: #f6f5f4; - text-align: center; - overflow: hidden; -} -.partner-banner h3 { - font-family: "Inter Tight", sans-serif; - font-size: 1rem; - font-weight: 600; - color: rgba(33, 37, 41, 0.45); - text-transform: uppercase; - letter-spacing: 0.08em; - margin-bottom: 1.5rem; -} -.partner-carousel-wrap { - overflow: hidden; - width: 100%; - max-width: 1080px; - margin: 0 auto; -} -.partner-grid { - display: flex; - align-items: center; - gap: 3rem; - width: max-content; - animation: partnerScroll 40s linear infinite; -} -.partner-carousel-wrap:hover .partner-grid { - animation-play-state: paused; -} -@keyframes partnerScroll { - 0% { - transform: translateX(0); - } - 100% { - transform: translateX(-50%); - } -} -.partner-item { - display: flex; - flex-direction: row; - align-items: center; - gap: 0.6rem; - text-decoration: none; - color: rgba(33, 37, 41, 0.55); - font-size: 0.85rem; - font-weight: 500; - white-space: nowrap; - transition: opacity 0.2s; - flex-shrink: 0; -} -.partner-item:hover { - opacity: 0.7; -} -.partner-item img { - width: 48px; - height: 48px; - border-radius: 8px; - object-fit: contain; -} -@media (max-width: 768px) { - .partner-grid { - gap: 2rem; - } - .partner-item img { - width: 42px; - height: 42px; - } - .partner-item { - font-size: 0.75rem; - gap: 0.4rem; - } -} -/* ---- Empire no discount ---- */ -.empire-no-save { - display: none !important; -} -/* ---- Blog Section ---- */ -.blog-section { - padding: 3rem 0; - background: #08080c; - color: #e8e8f0; -} -.blog-section h2 { - color: #e8e8f0; -} -.blog-search-wrap { - max-width: 500px; - margin: 0 auto 2rem; -} -.blog-search { - width: 100%; - padding: 0.75rem 1rem; - font-size: 0.85rem; - background: #1a1a2e; - border: 1px solid #2a2a4e; - border-radius: 0.5rem; - color: #e8e8f0; - font-family: Inter, sans-serif; - transition: border-color 0.2s; - outline: none; -} -.blog-search:focus { - border-color: #00f5ff; - box-shadow: 0 0 0 2px rgba(0, 245, 255, 0.15); -} -.blog-search::placeholder { - color: rgba(232, 232, 240, 0.35); -} -.blog-grid { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1.25rem; - margin-bottom: 2rem; -} -@media (max-width: 992px) { - .blog-grid { - grid-template-columns: repeat(2, 1fr); - } -} -@media (max-width: 576px) { - .blog-grid { - grid-template-columns: 1fr; - } -} -.blog-card { - background: #12121c; - border: 1px solid #1a1a2e; - border-radius: 0.6rem; - padding: 1.25rem; - display: flex; - flex-direction: column; - transition: - transform 0.2s, - border-color 0.2s, - box-shadow 0.2s; -} -.blog-card:hover { - transform: translateY(-2px); - border-color: #00f5ff; - box-shadow: 0 4px 20px rgba(0, 245, 255, 0.08); -} -.blog-card-top { - display: flex; - align-items: center; - gap: 0.5rem; - margin-bottom: 0.75rem; - flex-wrap: wrap; -} -.blog-badge { - display: inline-block; - padding: 0.2rem 0.6rem; - border-radius: 3rem; - font-size: 0.7rem; - font-weight: 700; - letter-spacing: 0.04em; - text-transform: uppercase; - color: #08080c; -} -.blog-badge-speed-run { - background: #f0cda8; - color: #1b1319; -} -.blog-badge-guide { - background: #d9c4d8; - color: #1b1319; -} -.blog-badge-howto { - background: #cbb3cc; - color: #1b1319; -} -.blog-badge-news { - background: #e8c9a8; - color: #1b1319; -} -.blog-badge-default { - background: #d9c4d8; - color: #1b1319; -} -.blog-agent { - display: inline-block; - padding: 0.2rem 0.55rem; - border-radius: 3rem; - font-size: 0.7rem; - font-weight: 600; - background: rgba(113, 75, 103, 0.15); - color: #714b67; - border: 1px solid rgba(113, 75, 103, 0.25); -} -.blog-date { - font-size: 0.82rem; - color: rgba(232, 232, 240, 0.45); - margin-bottom: 0.4rem; -} -.blog-card h3 { - font-family: "Inter Tight", sans-serif; - font-size: 1.1rem; - font-weight: 600; - margin: 0 0 0.5rem; - line-height: 1.35; -} -.blog-card h3 a { - color: #e8e8f0; - text-decoration: none; - transition: color 0.2s; -} -.blog-card h3 a:hover { - color: #00f5ff; -} -/* Light theme blog section override for homepage */ -.blog-section-light { - background: var(--light) !important; - color: var(--dark) !important; -} -.blog-section-light h2 { - color: var(--dark) !important; -} -.blog-section-light .blog-search { - background: #fff !important; - border-color: var(--border) !important; - color: var(--dark) !important; -} -.blog-section-light .blog-search:focus { - border-color: var(--primary) !important; - box-shadow: 0 0 0 2px rgba(113, 75, 103, 0.15) !important; -} -.blog-section-light .blog-search::placeholder { - color: rgba(33, 37, 41, 0.35) !important; -} -.blog-section-light .blog-card { - background: #fff !important; - border-color: var(--border) !important; -} -.blog-section-light .blog-card:hover { - border-color: var(--primary) !important; - box-shadow: 0 4px 20px rgba(113, 75, 103, 0.08) !important; -} -.blog-section-light .blog-card h3 a { - color: var(--dark) !important; -} -.blog-section-light .blog-card h3 a:hover { - color: var(--primary) !important; -} -.blog-section-light .blog-date { - color: rgba(33, 37, 41, 0.45) !important; -} -.blog-section-light .blog-teaser { - color: rgba(33, 37, 41, 0.6) !important; -} -.blog-section-light .blog-readmore { - color: var(--primary) !important; -} -.blog-section-light .blog-empty { - color: rgba(33, 37, 41, 0.45) !important; -} -.blog-section-light .blog-agent { - background: rgba(113, 75, 103, 0.1) !important; - color: var(--primary) !important; - border-color: rgba(113, 75, 103, 0.2) !important; -} -.blog-teaser { - font-size: 0.9rem; - color: rgba(232, 232, 240, 0.65); - line-height: 1.55; - margin-bottom: 1rem; - flex: 1; -} -.blog-readmore { - font-size: 0.85rem; - color: #00f5ff; - text-decoration: none; - font-weight: 500; - transition: opacity 0.2s; - margin-top: auto; -} -.blog-readmore:hover { - opacity: 0.75; -} -.blog-empty { - grid-column: 1 / -1; - text-align: center; - padding: 2rem; - color: rgba(232, 232, 240, 0.5); - font-size: 0.9rem; -} -.blog-pagination { - display: flex; - align-items: center; - justify-content: center; - gap: 0.75rem; - padding: 1rem 0; -} -.blog-page-btn { - padding: 0.4rem 1rem; - font-size: 0.85rem; - background: #12121c; - border: 1px solid #1a1a2e; - border-radius: 0.4rem; - color: #e8e8f0; - cursor: pointer; - font-family: Inter, sans-serif; - transition: - border-color 0.2s, - background 0.2s; -} -.blog-page-btn:hover:not(:disabled) { - border-color: #00f5ff; - background: rgba(0, 245, 255, 0.08); -} -.blog-page-btn:disabled { - opacity: 0.3; - cursor: default; -} -.blog-page-info { - font-size: 0.78rem; - color: rgba(232, 232, 240, 0.55); -} +/* ---- Blog post pages (legacy dark — maintain backward compatibility) ---- */ +.blog-section-dark { + background: #08080c; color: #e8e8f0; padding: 3rem 0; +} +.blog-section-dark h2 { color: #e8e8f0; } +.blog-section-dark .blog-search { + background: #1a1a2e; border-color: #2a2a4e; color: #e8e8f0; +} +.blog-section-dark .blog-search:focus { border-color: #00f5ff; box-shadow: 0 0 0 2px rgba(0,245,255,0.15); } +.blog-section-dark .blog-card { background: #12121c; border-color: #1a1a2e; } +.blog-section-dark .blog-card:hover { border-color: #00f5ff; box-shadow: 0 4px 20px rgba(0,245,255,0.08); } +.blog-section-dark .blog-card h3 a { color: #e8e8f0; } +.blog-section-dark .blog-card h3 a:hover { color: #00f5ff; } +.blog-section-dark .blog-date { color: rgba(232,232,240,0.45); } +.blog-section-dark .blog-teaser { color: rgba(232,232,240,0.65); } +.blog-section-dark .blog-readmore { color: #00f5ff; } +.blog-section-dark .blog-empty { color: rgba(232,232,240,0.5); } +.blog-section-dark .blog-agent { background: rgba(0,245,255,0.15); color: #00f5ff; border-color: rgba(0,245,255,0.25); } +.blog-section-dark .blog-page-btn { background: #12121c; border-color: #1a1a2e; color: #e8e8f0; } +.blog-section-dark .blog-page-btn:hover:not(:disabled) { border-color: #00f5ff; background: rgba(0,245,255,0.08); } +.blog-section-dark .blog-page-info { color: rgba(232,232,240,0.55); } +.blog-section-dark .blog-badge { color: #08080c; } +.blog-section-dark .blog-badge-speed-run { background: #f472b6; } +.blog-section-dark .blog-badge-guide { background: #a78bfa; } +.blog-section-dark .blog-badge-howto { background: #00f5ff; } +.blog-section-dark .blog-badge-news { background: #ffaa00; } +.blog-section-dark .blog-badge-default { background: #a78bfa; } \ No newline at end of file