fix padding gap

This commit is contained in:
2026-06-05 13:58:14 +05:30
parent 3a16bf9267
commit 7fb97a9ca6
50 changed files with 19296 additions and 142142 deletions

View File

@@ -0,0 +1,121 @@
import React from "react";
import type { Metadata } from "next";
import LegalDocument, { ContactLink, type LegalSection } from "@/components/sections/LegalDocument";
export const metadata: Metadata = {
title: "Cookie Policy Doormile",
description:
"How Doormile uses cookies and similar technologies when you visit our website, and how you can manage them.",
};
const sections: LegalSection[] = [
{
heading: "What Are Cookies?",
blocks: [
{
type: "p",
text: "Cookies are small text files stored on your device that help websites remember information about your visit and improve the browsing experience.",
},
],
},
{
heading: "Why We Use Cookies",
blocks: [
{ type: "p", text: "We use cookies to:" },
{
type: "ul",
items: [
"Enable essential website functionality",
"Improve website performance",
"Analyze visitor behavior and traffic patterns",
"Remember user preferences",
"Enhance overall user experience",
"Support website security",
],
},
],
},
{
heading: "Types of Cookies We Use",
blocks: [
{ type: "h3", text: "Essential Cookies" },
{
type: "p",
text: "These cookies are required for core website functionality and security features. The website may not function correctly without them.",
},
{ type: "h3", text: "Performance Cookies" },
{
type: "p",
text: "These cookies collect information about how visitors interact with the website and help us improve performance and usability.",
},
{ type: "h3", text: "Analytics Cookies" },
{
type: "p",
text: "Analytics cookies help us understand website traffic, visitor engagement, popular content, and user journeys.",
},
{ type: "h3", text: "Functional Cookies" },
{
type: "p",
text: "These cookies remember user preferences such as language, region, and other customization settings.",
},
{ type: "h3", text: "Third-Party Cookies" },
{
type: "p",
text: "Some third-party services integrated into our website, including analytics and performance monitoring tools, may place cookies on your device.",
},
],
},
{
heading: "Managing Cookies",
blocks: [
{
type: "p",
text: "Most web browsers allow users to control, block, or delete cookies through browser settings. Please note that disabling cookies may impact certain website features and functionality.",
},
],
},
{
heading: "Cookie Consent",
blocks: [
{
type: "p",
text: "Where required by applicable law, visitors may be presented with cookie consent options when accessing the website.",
},
],
},
{
heading: "Policy Updates",
blocks: [
{
type: "p",
text: "We may revise this Cookie Policy periodically to reflect changes in technology, regulations, or business practices. Updated versions will be published on this page.",
},
],
},
{
heading: "Contact Us",
blocks: [
{
type: "p",
text: <>If you have questions regarding this Cookie Policy or our use of cookies, please contact us through our <ContactLink />.</>,
},
],
},
];
export default function CookiePolicyPage() {
return (
<div className="content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none">
<div className="content">
<div className="content-inner">
<LegalDocument
title="Cookie Policy"
lastUpdated="June 2026"
intro="This Cookie Policy explains how Doormile uses cookies and similar technologies when you visit our website."
sections={sections}
/>
</div>
</div>
</div>
);
}

View File

@@ -10,6 +10,76 @@ html {
scroll-behavior: smooth;
}
/* ============================================================
GLOBAL SPACING SYSTEM
A single shared vertical-rhythm scale so every section uses
consistent top/bottom spacing instead of ad-hoc values.
Fluid (clamp) so it scales down gracefully on small screens.
--space-section → standard section (≈80px)
--space-section-lg → large/feature section (≈100px)
--space-hero-gap → gap from hero to the first section below
Apply via .dm-section / .dm-section-lg, or reference the vars
directly in component styles.
============================================================ */
:root {
--space-section: clamp(40px, 5vw, 64px);
--space-section-lg: clamp(52px, 6vw, 80px);
--space-hero-gap: clamp(36px, 4.5vw, 64px);
}
.dm-section {
padding-top: var(--space-section) !important;
padding-bottom: var(--space-section) !important;
}
.dm-section-lg {
padding-top: var(--space-section-lg) !important;
padding-bottom: var(--space-section-lg) !important;
}
/* ------------------------------------------------------------
Hero → first-section gap fixes
The "Doormile Way" container (.elementor-element-88745f4) carries a
150px top margin from the shared Elementor kit (intended as mid-page
spacing on Home, where it sits deep in the stack). On the About page
it is the FIRST section under the hero, so that 150px reads as an
oversized empty gap. Scope the reduction to the About page only
(.elementor-86) so Home's mid-page rhythm is untouched.
------------------------------------------------------------ */
.elementor-86 .elementor-element.elementor-element-88745f4 {
margin-top: var(--space-hero-gap) !important;
}
/* ------------------------------------------------------------
HOME PAGE — unified section rhythm
The shared Elementor kit stamps several stacked sections with a
150px top margin. On Home that makes "The Problem", the marquee,
"Connected Logistics" and "The Doormile Way" float far below the
section above them, while Stats and the EV card sit tight — an
uneven, broken rhythm. Normalize EVERY post-hero section to one
consistent gap so the page reads Hero ↓ Section ↓ Section evenly.
Scoped to `.elementor.elementor-61` — the Home page root uniquely
carries BOTH classes, so this never leaks onto other pages that
reuse these components (e.g. The Doormile Way on About-us, whose
root is `.elementor.elementor-86`).
Hero (741f56c) and the Stats band (9b26234) directly beneath it are
intentionally left tight and untouched.
------------------------------------------------------------ */
/* Sections, in render order: 30fd9d1 The Problem · b62c0b3 Marquee ·
89a0ca1 Connected Logistics · 88745f4 The Doormile Way · bbc6760 EV ·
3b4a7cc Industry Solutions. */
.elementor.elementor-61 .elementor-element.elementor-element-30fd9d1,
.elementor.elementor-61 .elementor-element.elementor-element-b62c0b3,
.elementor.elementor-61 .elementor-element.elementor-element-89a0ca1,
.elementor.elementor-61 .elementor-element.elementor-element-88745f4,
.elementor.elementor-61 .elementor-element.elementor-element-bbc6760,
.elementor.elementor-61 .elementor-element.elementor-element-3b4a7cc {
margin-top: var(--space-section) !important;
margin-bottom: 0 !important;
}
/* Lenis global smooth scroll (src/animations/SmoothScroll.tsx). These classes are
only present on routes/devices where Lenis is active; on touch devices and with
prefers-reduced-motion Lenis is off and native scroll-behavior:smooth (above) applies. */
@@ -87,12 +157,15 @@ body {
#masthead .elementor-element.elementor-element-0b7bf6f .header-menu-container .main-menu > li > a {
padding-top: 15px !important;
padding-bottom: 16px !important;
padding-left: 14px !important;
padding-right: 14px !important;
font-size: 15px !important;
line-height: 1.2 !important;
white-space: nowrap !important;
}
#masthead .header-menu-container .main-menu {
gap: 18px !important;
gap: 8px !important;
}
#masthead .elementor-element.elementor-element-cabdb09 a.header-button {
@@ -450,8 +523,8 @@ body {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 30px;
width: 90%;
margin: 30px auto;
width: 100%;
margin: 30px 0 0;
}
@media (max-width: 1024px) {
@@ -579,12 +652,17 @@ body {
transform: translateY(10px);
}
/* Default card title — single typography token shared by every card (FMCG,
Pharmaceutical, Enterprise & B2B). FMCG is the reference: small, clean,
bottom-left, consistent weight. Kept compact so longer labels read at the
same size/weight as FMCG instead of looking heavier. */
.industry-card-default-title {
color: #ffffff !important;
font-size: 28px !important;
font-size: 22px !important;
font-weight: 700 !important;
line-height: 1.2 !important;
margin: 0 !important;
letter-spacing: -0.5px !important;
letter-spacing: -0.3px !important;
text-transform: none !important;
font-family: var(--font-manrope), 'Manrope', system-ui, -apple-system, sans-serif !important;
}
@@ -730,9 +808,27 @@ body {
letter-spacing: -0.5px !important;
}
.elementor-element-3b4a7cc > .e-con-inner {
/* Industry Solutions: match the Meet Crew (OurTeam) container EXACTLY. The
e-con-boxed inner otherwise spans edge-to-edge because the vendor
"display: var(--display)" resolves to the invalid `inline` fallback, so its
max-width is ignored. The previous rule here only set padding (never
max-width / margin / display), which is why the divider line stretched almost
full-viewport and the heading hugged the left edge. Force flex and pin the
inner to the shared 1480px inset so the label divider, heading and card grid
all share the same left/right edges as the rest of the page. */
.elementor.elementor-61 .elementor-element.elementor-element-3b4a7cc {
display: flex;
}
.elementor.elementor-61 .elementor-element.elementor-element-3b4a7cc > .e-con-inner {
display: flex;
flex-direction: column;
max-width: 1480px;
width: 100%;
margin-left: auto;
margin-right: auto;
padding-left: clamp(20px, 4vw, 50px) !important;
padding-right: clamp(20px, 4vw, 50px) !important;
box-sizing: border-box;
}
/* Custom premium animations keyframes */

View File

@@ -45,7 +45,7 @@ const inter = Inter({
});
export const metadata: Metadata = {
title: "Doormile — Last-Mile Logistics Intelligence",
title: "Doormile — Delivering Trust. Beyond Boundaries",
description: "Doormile powers last-mile logistics with MileTruth™ AI, providing connected miles, SLA protection, and carrier management.",
icons: {
icon: "/images/cropped-image-2.png",
@@ -71,19 +71,13 @@ export default function RootLayout({
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"
/>
{/* Load WordPress & Elementor compiled styles from public folder */}
<link rel="stylesheet" href="/css/vendor/vendor-elementor-generated-globals.css" />
<link rel="stylesheet" href="/css/vendor/vendor-elementor-base.css" />
<link rel="stylesheet" href="/css/vendor/vendor-elementor-custom.min.css" />
<link rel="stylesheet" href="/css/vendor/vendor-theme-core.css" />
<link rel="stylesheet" href="/css/vendor/vendor-global-overrides.css" />
<link rel="stylesheet" href="/css/vendor/vendor-layout-main.css" />
<link rel="stylesheet" href="/css/vendor/vendor-responsive-laptops.css" />
<link rel="stylesheet" href="/css/vendor/vendor-elementor-hfe.css" />
<link rel="stylesheet" href="/css/vendor/vendor-icons-fontello-load.css" />
<link rel="stylesheet" href="/css/vendor/vendor-icons-fontello.css" />
<link rel="stylesheet" href="/css/custom-frontend.min.css" />
<link rel="stylesheet" href="/css/all-inlined-head-styles.css" />
{/*
Consolidated site styles. Generated by `npm run build:css`
(scripts/build-css.sh): the legacy WordPress/Elementor vendor CSS is
concatenated in cascade order and purged of unused selectors via
purgecss.config.cjs. ~2.86 MB of vendor CSS -> ~560 KB, one request.
*/}
<link rel="stylesheet" href="/css/site.css" />
</head>
{/*
Production DOM (index.php + header.php):

View File

@@ -10,7 +10,7 @@ import EVSection from "@/components/sections/EVSection";
import IndustrySolutions from "@/components/sections/IndustrySolutions";
export const metadata: Metadata = {
title: "Doormile — Last-Mile Logistics Intelligence",
title: "Doormile — Delivering Trust. Beyond Boundaries",
description:
"Doormile helps logistics companies track every mile with MileTruth™ AI. Real-time SLA protection and connected miles visibility.",
};

View File

@@ -0,0 +1,146 @@
import React from "react";
import type { Metadata } from "next";
import LegalDocument, { ContactLink, type LegalSection } from "@/components/sections/LegalDocument";
export const metadata: Metadata = {
title: "Privacy Policy Doormile",
description:
"How Doormile collects, uses, stores, and protects your information when you visit our website, interact with our services, or communicate with us.",
};
const sections: LegalSection[] = [
{
heading: "Information We Collect",
blocks: [
{ type: "p", text: "We may collect the following information:" },
{
type: "ul",
items: [
"Full name",
"Email address",
"Phone number",
"Company name",
"Job title",
"Information submitted through contact forms",
"Service inquiry details",
"Website usage data and analytics",
"Browser, device, and IP information",
],
},
],
},
{
heading: "How We Use Your Information",
blocks: [
{ type: "p", text: "We use your information to:" },
{
type: "ul",
items: [
"Respond to inquiries and support requests",
"Provide information about our services",
"Improve website performance and user experience",
"Analyze usage trends and platform effectiveness",
"Maintain security and prevent unauthorized access",
"Communicate service updates and business information",
"Comply with legal and regulatory requirements",
],
},
],
},
{
heading: "Information Sharing",
blocks: [
{
type: "p",
text: "Doormile does not sell, rent, or trade personal information. Information may be shared with trusted service providers that assist with website hosting, analytics, communications, and operational support, subject to appropriate confidentiality and security obligations.",
},
],
},
{
heading: "Data Security",
blocks: [
{
type: "p",
text: "We implement industry-standard administrative, technical, and organizational safeguards designed to protect personal information from unauthorized access, disclosure, alteration, or destruction.",
},
],
},
{
heading: "Data Retention",
blocks: [
{
type: "p",
text: "We retain information only for as long as necessary to fulfill the purposes described in this policy, comply with legal obligations, resolve disputes, and enforce agreements.",
},
],
},
{
heading: "Cookies and Tracking Technologies",
blocks: [
{
type: "p",
text: "We use cookies and similar technologies to improve website functionality, measure performance, understand user behavior, and enhance user experience.",
},
],
},
{
heading: "Your Rights",
blocks: [
{ type: "p", text: "Depending on applicable laws, you may have the right to:" },
{
type: "ul",
items: [
"Access your personal information",
"Request correction of inaccurate data",
"Request deletion of personal information",
"Restrict or object to certain processing activities",
"Withdraw consent where applicable",
],
},
],
},
{
heading: "Third-Party Links",
blocks: [
{
type: "p",
text: "Our website may contain links to third-party websites. We are not responsible for the privacy practices or content of external websites.",
},
],
},
{
heading: "Policy Updates",
blocks: [
{
type: "p",
text: "We may update this Privacy Policy periodically. Any changes will be posted on this page with a revised effective date.",
},
],
},
{
heading: "Contact Us",
blocks: [
{
type: "p",
text: <>For privacy-related questions or requests, please contact us through our <ContactLink />.</>,
},
],
},
];
export default function PrivacyPolicyPage() {
return (
<div className="content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none">
<div className="content">
<div className="content-inner">
<LegalDocument
title="Privacy Policy"
lastUpdated="June 2026"
intro="At Doormile, we are committed to protecting your privacy and maintaining the security of the information you share with us. This Privacy Policy outlines how we collect, use, store, and protect your information when you visit our website, interact with our services, or communicate with us."
sections={sections}
/>
</div>
</div>
</div>
);
}

View File

@@ -0,0 +1,140 @@
import React from "react";
import type { Metadata } from "next";
import LegalDocument, { ContactLink, type LegalSection } from "@/components/sections/LegalDocument";
export const metadata: Metadata = {
title: "Terms of Service Doormile",
description:
"The Terms of Service governing your access to and use of the Doormile website and related services.",
};
const sections: LegalSection[] = [
{
heading: "Acceptance of Terms",
blocks: [
{
type: "p",
text: "By accessing this website, you acknowledge that you have read, understood, and agreed to these Terms of Service and all applicable laws and regulations.",
},
],
},
{
heading: "Permitted Use",
blocks: [
{
type: "p",
text: "You agree to use the website and services only for lawful purposes and in accordance with these terms.",
},
{ type: "p", text: "You agree not to:" },
{
type: "ul",
items: [
"Violate applicable laws or regulations",
"Attempt unauthorized access to systems or networks",
"Interfere with website functionality or security",
"Distribute malicious software or harmful code",
"Misrepresent your identity or organization",
"Use website content without authorization",
],
},
],
},
{
heading: "Intellectual Property Rights",
blocks: [
{
type: "p",
text: "All content, technology, software, graphics, trademarks, logos, text, designs, and other materials available on this website are the property of Doormile or its licensors and are protected by applicable intellectual property laws.",
},
],
},
{
heading: "User Submissions",
blocks: [
{
type: "p",
text: "Any information submitted through forms, inquiries, or communications must be accurate and lawful. Users are responsible for the content they submit.",
},
],
},
{
heading: "Service Availability",
blocks: [
{
type: "p",
text: "While we strive to maintain uninterrupted access, we do not guarantee that the website or services will always be available, secure, or error-free.",
},
],
},
{
heading: "Disclaimer of Warranties",
blocks: [
{
type: "p",
text: 'The website and services are provided on an "as is" and "as available" basis without warranties of any kind, whether express or implied.',
},
],
},
{
heading: "Limitation of Liability",
blocks: [
{
type: "p",
text: "To the maximum extent permitted by law, Doormile shall not be liable for any indirect, incidental, special, consequential, or punitive damages arising from or related to the use of the website or services.",
},
],
},
{
heading: "Indemnification",
blocks: [
{
type: "p",
text: "Users agree to indemnify and hold harmless Doormile, its employees, partners, and affiliates from claims arising from misuse of the website or violation of these terms.",
},
],
},
{
heading: "Modifications",
blocks: [
{
type: "p",
text: "We reserve the right to update or modify these Terms of Service at any time. Continued use of the website following updates constitutes acceptance of the revised terms.",
},
],
},
{
heading: "Governing Law",
blocks: [
{
type: "p",
text: "These Terms shall be governed by and interpreted in accordance with applicable laws and regulations in the jurisdictions where Doormile conducts business.",
},
],
},
{
heading: "Contact Us",
blocks: [
{
type: "p",
text: <>Questions regarding these Terms of Service may be submitted through our <ContactLink />.</>,
},
],
},
];
export default function TermsOfServicePage() {
return (
<div className="content-wrapper content-wrapper-may-contain-elementor-code content-wrapper-sidebar-position-none">
<div className="content">
<div className="content-inner">
<LegalDocument
title="Terms of Service"
lastUpdated="June 2026"
intro="These Terms of Service govern your access to and use of the Doormile website and related services. By accessing or using our website, you agree to comply with these terms."
sections={sections}
/>
</div>
</div>
</div>
);
}