Fix navbar across all pages: add nav include, fonts, active state, spacing, stats, error pages
- Add nav.php include to 5 missing pages (cost-calculator, thank-you, 403, 404, 500) - Add ErrorDocument directives to .htaccess for custom 403/404/500 pages - Fix bogus accuracy stats (homepage, web-scraping, location pages) - Fix invisible CTA buttons on property and financial service pages - Add Google Fonts (Roboto Slab + Lato) to all pages missing it (tools, blog articles, error pages) - Add active nav link highlighting (teal underline for current page) - Improve footer contrast to WCAG AA, equal-height cards, mobile text scaling - Consistent navbar-to-content spacing across all pages - Bump cache version to v1.1.3
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
# Custom error pages
|
||||||
|
ErrorDocument 403 /403.php
|
||||||
|
ErrorDocument 404 /404.php
|
||||||
|
ErrorDocument 500 /500.php
|
||||||
|
|
||||||
# Security Rules for UK Data Services
|
# Security Rules for UK Data Services
|
||||||
|
|
||||||
# Protect sensitive files and configs
|
# Protect sensitive files and configs
|
||||||
|
|||||||
5
403.php
5
403.php
@@ -10,6 +10,9 @@ http_response_code(403);
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Access Forbidden - UK Data Services</title>
|
<title>Access Forbidden - UK Data Services</title>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
font-family: 'Arial', sans-serif;
|
font-family: 'Arial', sans-serif;
|
||||||
@@ -68,8 +71,10 @@ http_response_code(403);
|
|||||||
opacity: 0.8;
|
opacity: 0.8;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<?php include($_SERVER["DOCUMENT_ROOT"] . "/includes/nav.php"); ?>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<h3>UK Data Services</h3>
|
<h3>UK Data Services</h3>
|
||||||
|
|||||||
1
404.php
1
404.php
@@ -88,6 +88,7 @@ $page_description = "The page you're looking for doesn't exist. Explore our data
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<?php include($_SERVER["DOCUMENT_ROOT"] . "/includes/nav.php"); ?>
|
||||||
<div class="error-page">
|
<div class="error-page">
|
||||||
<div class="error-container">
|
<div class="error-container">
|
||||||
<div class="error-code">404</div>
|
<div class="error-code">404</div>
|
||||||
|
|||||||
5
500.php
5
500.php
@@ -13,6 +13,9 @@ error_log('500 Error triggered: ' . date('Y-m-d H:i:s') . ' - IP: ' . $_SERVER['
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Service Temporarily Unavailable - UK Data Services</title>
|
<title>Service Temporarily Unavailable - UK Data Services</title>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
font-family: 'Arial', sans-serif;
|
font-family: 'Arial', sans-serif;
|
||||||
@@ -78,8 +81,10 @@ error_log('500 Error triggered: ' . date('Y-m-d H:i:s') . ' - IP: ' . $_SERVER['
|
|||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<?php include($_SERVER["DOCUMENT_ROOT"] . "/includes/nav.php"); ?>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="logo">
|
<div class="logo">
|
||||||
<h3>UK Data Services</h3>
|
<h3>UK Data Services</h3>
|
||||||
|
|||||||
@@ -149,6 +149,7 @@ body {
|
|||||||
transition: color 0.3s ease;
|
transition: color 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-link.active { color: #148069; font-weight: 600; border-bottom: 2px solid #148069; padding-bottom: 2px;}
|
||||||
.nav-link:hover {
|
.nav-link:hover {
|
||||||
color: #144784;
|
color: #144784;
|
||||||
}
|
}
|
||||||
@@ -3599,41 +3600,55 @@ aside.related-articles {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fix for navbar overlap on content pages */
|
/* ===== NAVBAR SPACING FIX (consistent across all pages) ===== */
|
||||||
|
/* Navbar is position:fixed, height 70px */
|
||||||
|
|
||||||
|
/* Hero pages: all hero variants get 120px top padding (70px navbar + 50px space) */
|
||||||
|
.hero,
|
||||||
|
.page-hero,
|
||||||
|
.about-hero,
|
||||||
|
.faq-hero,
|
||||||
|
.service-hero,
|
||||||
|
.project-types-hero,
|
||||||
|
.tools-hero,
|
||||||
|
.quote-hero {
|
||||||
|
padding-top: 120px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Non-hero pages with <main>: push content below navbar */
|
||||||
main {
|
main {
|
||||||
padding-top: 90px; /* Add padding to account for fixed navbar (70px + 20px buffer) */
|
padding-top: 90px; /* 70px navbar + 20px breathing room */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Specific fix for legal content pages */
|
/* But if main contains a hero, don't double-pad */
|
||||||
|
main > .hero:first-child,
|
||||||
|
main > .page-hero:first-child,
|
||||||
|
main > .about-hero:first-child,
|
||||||
|
main > .faq-hero:first-child,
|
||||||
|
main > .service-hero:first-child,
|
||||||
|
main > .project-types-hero:first-child {
|
||||||
|
margin-top: -90px; /* Cancel out the main padding */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Legal content pages (no hero, text-heavy) */
|
||||||
.legal-content {
|
.legal-content {
|
||||||
padding-top: 120px !important; /* Override inline styles for legal pages */
|
padding-top: 100px !important; /* 70px navbar + 30px breathing room */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Also ensure any page sections that might be affected have proper spacing */
|
/* Tool sub-pages and standalone pages (no <main>, no hero) */
|
||||||
|
.calculator-container,
|
||||||
|
.analyzer-container,
|
||||||
|
.converter-container,
|
||||||
|
.checker-container,
|
||||||
|
.thank-you-container {
|
||||||
|
padding-top: 100px !important; /* 70px navbar + 30px breathing room */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Generic page-content class */
|
||||||
.page-content {
|
.page-content {
|
||||||
padding-top: 90px;
|
padding-top: 90px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For hero sections that should start right under navbar */
|
|
||||||
.hero {
|
|
||||||
padding-top: 140px; /* 120px base + 20px for navbar */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For about page hero */
|
|
||||||
.about-hero {
|
|
||||||
padding-top: 140px; /* 120px base + 20px for navbar */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For FAQ page hero */
|
|
||||||
.faq-hero {
|
|
||||||
padding-top: 140px; /* 120px base + 20px for navbar */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For project types and other page heroes */
|
|
||||||
.page-hero {
|
|
||||||
padding-top: 140px; /* 120px base + 20px for navbar */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hide reCAPTCHA badge */
|
/* Hide reCAPTCHA badge */
|
||||||
.grecaptcha-badge {
|
.grecaptcha-badge {
|
||||||
visibility: hidden !important;
|
visibility: hidden !important;
|
||||||
@@ -4370,3 +4385,124 @@ body { font-size: 17px; }
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ===== END VISUAL FIXES ===== */
|
/* ===== END VISUAL FIXES ===== */
|
||||||
|
|
||||||
|
|
||||||
|
/* ===== VISUAL FIXES 2026-02-11 ===== */
|
||||||
|
|
||||||
|
/* 1. Equal-height capability cards on project-types page */
|
||||||
|
.capabilities-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||||
|
gap: 30px;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
.capability-card {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.capability-card p {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. Footer contrast improvements — WCAG AA */
|
||||||
|
.footer-section p,
|
||||||
|
.footer-section li,
|
||||||
|
.footer-bottom p,
|
||||||
|
.footer-bottom .company-details,
|
||||||
|
.trust-badge-text span {
|
||||||
|
color: #d1d5db; /* ~9:1 on #151f25 */
|
||||||
|
}
|
||||||
|
.footer-section a {
|
||||||
|
color: #93c5fd; /* light blue — ~7.5:1 on #151f25 */
|
||||||
|
}
|
||||||
|
.footer-section a:hover {
|
||||||
|
color: #bfdbfe;
|
||||||
|
}
|
||||||
|
.footer-section h3 {
|
||||||
|
color: #f3f4f6;
|
||||||
|
}
|
||||||
|
.footer-bottom p,
|
||||||
|
.footer-bottom .company-details {
|
||||||
|
color: #9ca3af; /* muted but still 4.6:1 */
|
||||||
|
}
|
||||||
|
.footer-logo img {
|
||||||
|
filter: brightness(1.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. Mobile text sizing & layout */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
body {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Project-types hero */
|
||||||
|
.project-types-hero h1 {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.project-types-hero p {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Capability cards single column on mobile */
|
||||||
|
.capabilities-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Industry grid single column */
|
||||||
|
.industry-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Project category headings */
|
||||||
|
.project-category h2 {
|
||||||
|
font-size: 1.6rem;
|
||||||
|
}
|
||||||
|
.project-category h3 {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
.project-description {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer content single column (already done but ensure) */
|
||||||
|
.footer-content {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer bottom stack */
|
||||||
|
.footer-bottom,
|
||||||
|
.footer-bottom .footer-bottom-content {
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 15px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
.project-types-hero h1 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
.project-types-hero {
|
||||||
|
padding: 100px 0 40px;
|
||||||
|
}
|
||||||
|
.project-category {
|
||||||
|
padding: 40px 0;
|
||||||
|
}
|
||||||
|
.project-category h2 {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 4. General polish */
|
||||||
|
/* project-types-hero padding now in unified block above */
|
||||||
|
|
||||||
|
/* Tech tags wrapping fix */
|
||||||
|
.tech-tags {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ===== END VISUAL FIXES 2026-02-11 ===== */
|
||||||
|
|||||||
4496
assets/css/main.css.bak.20260211
Normal file
4496
assets/css/main.css.bak.20260211
Normal file
File diff suppressed because it is too large
Load Diff
186
assets/css/main.min.css
vendored
186
assets/css/main.min.css
vendored
@@ -149,6 +149,7 @@ body {
|
|||||||
transition: color 0.3s ease;
|
transition: color 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-link.active { color: #148069; font-weight: 600; border-bottom: 2px solid #148069; padding-bottom: 2px;}
|
||||||
.nav-link:hover {
|
.nav-link:hover {
|
||||||
color: #144784;
|
color: #144784;
|
||||||
}
|
}
|
||||||
@@ -3599,41 +3600,55 @@ aside.related-articles {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fix for navbar overlap on content pages */
|
/* ===== NAVBAR SPACING FIX (consistent across all pages) ===== */
|
||||||
|
/* Navbar is position:fixed, height 70px */
|
||||||
|
|
||||||
|
/* Hero pages: all hero variants get 120px top padding (70px navbar + 50px space) */
|
||||||
|
.hero,
|
||||||
|
.page-hero,
|
||||||
|
.about-hero,
|
||||||
|
.faq-hero,
|
||||||
|
.service-hero,
|
||||||
|
.project-types-hero,
|
||||||
|
.tools-hero,
|
||||||
|
.quote-hero {
|
||||||
|
padding-top: 120px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Non-hero pages with <main>: push content below navbar */
|
||||||
main {
|
main {
|
||||||
padding-top: 90px; /* Add padding to account for fixed navbar (70px + 20px buffer) */
|
padding-top: 90px; /* 70px navbar + 20px breathing room */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Specific fix for legal content pages */
|
/* But if main contains a hero, don't double-pad */
|
||||||
|
main > .hero:first-child,
|
||||||
|
main > .page-hero:first-child,
|
||||||
|
main > .about-hero:first-child,
|
||||||
|
main > .faq-hero:first-child,
|
||||||
|
main > .service-hero:first-child,
|
||||||
|
main > .project-types-hero:first-child {
|
||||||
|
margin-top: -90px; /* Cancel out the main padding */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Legal content pages (no hero, text-heavy) */
|
||||||
.legal-content {
|
.legal-content {
|
||||||
padding-top: 120px !important; /* Override inline styles for legal pages */
|
padding-top: 100px !important; /* 70px navbar + 30px breathing room */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Also ensure any page sections that might be affected have proper spacing */
|
/* Tool sub-pages and standalone pages (no <main>, no hero) */
|
||||||
|
.calculator-container,
|
||||||
|
.analyzer-container,
|
||||||
|
.converter-container,
|
||||||
|
.checker-container,
|
||||||
|
.thank-you-container {
|
||||||
|
padding-top: 100px !important; /* 70px navbar + 30px breathing room */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Generic page-content class */
|
||||||
.page-content {
|
.page-content {
|
||||||
padding-top: 90px;
|
padding-top: 90px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For hero sections that should start right under navbar */
|
|
||||||
.hero {
|
|
||||||
padding-top: 140px; /* 120px base + 20px for navbar */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For about page hero */
|
|
||||||
.about-hero {
|
|
||||||
padding-top: 140px; /* 120px base + 20px for navbar */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For FAQ page hero */
|
|
||||||
.faq-hero {
|
|
||||||
padding-top: 140px; /* 120px base + 20px for navbar */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For project types and other page heroes */
|
|
||||||
.page-hero {
|
|
||||||
padding-top: 140px; /* 120px base + 20px for navbar */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hide reCAPTCHA badge */
|
/* Hide reCAPTCHA badge */
|
||||||
.grecaptcha-badge {
|
.grecaptcha-badge {
|
||||||
visibility: hidden !important;
|
visibility: hidden !important;
|
||||||
@@ -4370,3 +4385,124 @@ body { font-size: 17px; }
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ===== END VISUAL FIXES ===== */
|
/* ===== END VISUAL FIXES ===== */
|
||||||
|
|
||||||
|
|
||||||
|
/* ===== VISUAL FIXES 2026-02-11 ===== */
|
||||||
|
|
||||||
|
/* 1. Equal-height capability cards on project-types page */
|
||||||
|
.capabilities-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||||
|
gap: 30px;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
.capability-card {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.capability-card p {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. Footer contrast improvements — WCAG AA */
|
||||||
|
.footer-section p,
|
||||||
|
.footer-section li,
|
||||||
|
.footer-bottom p,
|
||||||
|
.footer-bottom .company-details,
|
||||||
|
.trust-badge-text span {
|
||||||
|
color: #d1d5db; /* ~9:1 on #151f25 */
|
||||||
|
}
|
||||||
|
.footer-section a {
|
||||||
|
color: #93c5fd; /* light blue — ~7.5:1 on #151f25 */
|
||||||
|
}
|
||||||
|
.footer-section a:hover {
|
||||||
|
color: #bfdbfe;
|
||||||
|
}
|
||||||
|
.footer-section h3 {
|
||||||
|
color: #f3f4f6;
|
||||||
|
}
|
||||||
|
.footer-bottom p,
|
||||||
|
.footer-bottom .company-details {
|
||||||
|
color: #9ca3af; /* muted but still 4.6:1 */
|
||||||
|
}
|
||||||
|
.footer-logo img {
|
||||||
|
filter: brightness(1.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 3. Mobile text sizing & layout */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
body {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Project-types hero */
|
||||||
|
.project-types-hero h1 {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
.project-types-hero p {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Capability cards single column on mobile */
|
||||||
|
.capabilities-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Industry grid single column */
|
||||||
|
.industry-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Project category headings */
|
||||||
|
.project-category h2 {
|
||||||
|
font-size: 1.6rem;
|
||||||
|
}
|
||||||
|
.project-category h3 {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
.project-description {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer content single column (already done but ensure) */
|
||||||
|
.footer-content {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer bottom stack */
|
||||||
|
.footer-bottom,
|
||||||
|
.footer-bottom .footer-bottom-content {
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 15px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
.project-types-hero h1 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
.project-types-hero {
|
||||||
|
padding: 100px 0 40px;
|
||||||
|
}
|
||||||
|
.project-category {
|
||||||
|
padding: 40px 0;
|
||||||
|
}
|
||||||
|
.project-category h2 {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 4. General polish */
|
||||||
|
/* project-types-hero padding now in unified block above */
|
||||||
|
|
||||||
|
/* Tech tags wrapping fix */
|
||||||
|
.tech-tags {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ===== END VISUAL FIXES 2026-02-11 ===== */
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ $author = "UK Data Services Team";
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title><?php echo htmlspecialchars($page_title); ?></title>
|
<title><?php echo htmlspecialchars($page_title); ?></title>
|
||||||
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ $read_time = 11;
|
|||||||
<meta name="keywords" content="<?php echo htmlspecialchars($article_keywords); ?>">
|
<meta name="keywords" content="<?php echo htmlspecialchars($article_keywords); ?>">
|
||||||
<meta name="author" content="<?php echo htmlspecialchars($article_author); ?>">
|
<meta name="author" content="<?php echo htmlspecialchars($article_author); ?>">
|
||||||
<meta name="robots" content="index, follow">
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../assets/css/main.css">
|
<link rel="stylesheet" href="../../assets/css/main.css">
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ $read_time = 9;
|
|||||||
<meta name="keywords" content="<?php echo htmlspecialchars($article_keywords); ?>">
|
<meta name="keywords" content="<?php echo htmlspecialchars($article_keywords); ?>">
|
||||||
<meta name="author" content="<?php echo htmlspecialchars($article_author); ?>">
|
<meta name="author" content="<?php echo htmlspecialchars($article_author); ?>">
|
||||||
<meta name="robots" content="index, follow">
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../assets/css/main.css">
|
<link rel="stylesheet" href="../../assets/css/main.css">
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ $read_time = 8;
|
|||||||
<meta name="keywords" content="<?php echo htmlspecialchars($article_keywords); ?>">
|
<meta name="keywords" content="<?php echo htmlspecialchars($article_keywords); ?>">
|
||||||
<meta name="author" content="<?php echo htmlspecialchars($article_author); ?>">
|
<meta name="author" content="<?php echo htmlspecialchars($article_author); ?>">
|
||||||
<meta name="robots" content="index, follow">
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<!-- Article metadata and other head elements (same as previous template) -->
|
<!-- Article metadata and other head elements (same as previous template) -->
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ $keywords = "UK data services case studies, client success stories, data transfo
|
|||||||
<title><?php echo htmlspecialchars($page_title); ?></title>
|
<title><?php echo htmlspecialchars($page_title); ?></title>
|
||||||
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
||||||
<meta name="keywords" content="<?php echo htmlspecialchars($keywords); ?>">
|
<meta name="keywords" content="<?php echo htmlspecialchars($keywords); ?>">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<!-- Open Graph -->
|
<!-- Open Graph -->
|
||||||
|
|||||||
@@ -1,3 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
$current_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
|
||||||
|
$current_path = rtrim($current_path, '/');
|
||||||
|
if ($current_path === '') $current_path = '/';
|
||||||
|
|
||||||
|
function nav_active($href, $current) {
|
||||||
|
// Exact match
|
||||||
|
if ($href === $current) return ' active';
|
||||||
|
// Section match (e.g. /tools/ matches /tools/cost-calculator)
|
||||||
|
$href_trimmed = rtrim($href, '/');
|
||||||
|
if ($href_trimmed !== '' && $href_trimmed !== '/' && strpos($current, $href_trimmed) === 0) return ' active';
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
?>
|
||||||
<!-- Navigation -->
|
<!-- Navigation -->
|
||||||
<nav class="navbar" id="navbar">
|
<nav class="navbar" id="navbar">
|
||||||
<div class="nav-container">
|
<div class="nav-container">
|
||||||
@@ -10,14 +24,14 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="nav-menu" id="nav-menu">
|
<div class="nav-menu" id="nav-menu">
|
||||||
<a href="/" class="nav-link">Home</a>
|
<a href="/" class="nav-link<?php echo $current_path === '/' ? ' active' : ''; ?>">Home</a>
|
||||||
<a href="/#services" class="nav-link">Services</a>
|
<a href="/#services" class="nav-link<?php echo (strpos($current_path, '/services') === 0) ? ' active' : ''; ?>">Services</a>
|
||||||
<a href="/project-types" class="nav-link">Project Types</a>
|
<a href="/project-types" class="nav-link<?php echo nav_active('/project-types', $current_path); ?>">Project Types</a>
|
||||||
<a href="/about" class="nav-link">About</a>
|
<a href="/about" class="nav-link<?php echo nav_active('/about', $current_path); ?>">About</a>
|
||||||
<a href="/tools/" class="nav-link">Free Tools</a>
|
<a href="/tools/" class="nav-link<?php echo nav_active('/tools', $current_path); ?>">Free Tools</a>
|
||||||
<a href="/blog/" class="nav-link">Blog</a>
|
<a href="/blog/" class="nav-link<?php echo nav_active('/blog', $current_path); ?>">Blog</a>
|
||||||
<a href="/#contact" class="nav-link">Contact</a>
|
<a href="/#contact" class="nav-link">Contact</a>
|
||||||
<a href="/quote" class="nav-link cta-button">Request Consultation</a>
|
<a href="/quote" class="nav-link cta-button<?php echo nav_active('/quote', $current_path); ?>">Request Consultation</a>
|
||||||
</div>
|
</div>
|
||||||
<button class="nav-toggle" id="nav-toggle" aria-expanded="false" aria-controls="nav-menu" aria-label="Toggle navigation menu">
|
<button class="nav-toggle" id="nav-toggle" aria-expanded="false" aria-controls="nav-menu" aria-label="Toggle navigation menu">
|
||||||
<span class="bar"></span>
|
<span class="bar"></span>
|
||||||
|
|||||||
10
index.php
10
index.php
@@ -111,9 +111,9 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
|
|||||||
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Lato:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Lato:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Resource Preloading for Performance -->
|
<!-- Resource Preloading for Performance -->
|
||||||
<link rel="preload" href="/assets/css/main.min.css?v=1.1.2" as="style">
|
<link rel="preload" href="/assets/css/main.min.css?v=1.1.3" as="style">
|
||||||
<link rel="preload" href="/assets/images/ukds-main-logo.webp" as="image">
|
<link rel="preload" href="/assets/images/ukds-main-logo.webp" as="image">
|
||||||
<link rel="preload" href="/assets/js/main.min.js?v=1.1.0" as="script">
|
<link rel="preload" href="/assets/js/main.min.js?v=1.1.1" as="script">
|
||||||
|
|
||||||
<!-- Critical CSS for Above-the-Fold -->
|
<!-- Critical CSS for Above-the-Fold -->
|
||||||
<style>
|
<style>
|
||||||
@@ -137,8 +137,8 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- Styles -->
|
<!-- Styles -->
|
||||||
<link rel="stylesheet" href="/assets/css/main.min.css?v=1.1.2" media="print" onload="this.media='all'">
|
<link rel="stylesheet" href="/assets/css/main.min.css?v=1.1.3" media="print" onload="this.media='all'">
|
||||||
<noscript><link rel="stylesheet" href="assets/css/main.min.css?v=1.1.2"></noscript>
|
<noscript><link rel="stylesheet" href="assets/css/main.min.css?v=1.1.3"></noscript>
|
||||||
|
|
||||||
<!-- Enhanced Local SEO Schema -->
|
<!-- Enhanced Local SEO Schema -->
|
||||||
<script type="application/ld+json">
|
<script type="application/ld+json">
|
||||||
@@ -1298,7 +1298,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
|
|||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<!-- Scripts -->
|
<!-- Scripts -->
|
||||||
<script src="/assets/js/main.min.js?v=1.1.0"></script>
|
<script src="/assets/js/main.min.js?v=1.1.1"></script>
|
||||||
|
|
||||||
<!-- Service Worker Registration -->
|
<!-- Service Worker Registration -->
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -427,7 +427,7 @@ $breadcrumbs = [
|
|||||||
<span class="stat-label">Birmingham Clients</span>
|
<span class="stat-label">Birmingham Clients</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
<span class="stat-number">99.8%</span>
|
<span class="stat-number">99.5%</span>
|
||||||
<span class="stat-label">Accuracy Rate</span>
|
<span class="stat-label">Accuracy Rate</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
|
|||||||
@@ -427,7 +427,7 @@ $breadcrumbs = [
|
|||||||
<span class="stat-label">London Clients</span>
|
<span class="stat-label">London Clients</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
<span class="stat-number">99.8%</span>
|
<span class="stat-number">99.5%</span>
|
||||||
<span class="stat-label">Accuracy Rate</span>
|
<span class="stat-label">Accuracy Rate</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
|
|||||||
@@ -427,7 +427,7 @@ $breadcrumbs = [
|
|||||||
<span class="stat-label">Manchester Clients</span>
|
<span class="stat-label">Manchester Clients</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
<span class="stat-number">99.8%</span>
|
<span class="stat-number">99.5%</span>
|
||||||
<span class="stat-label">Accuracy Rate</span>
|
<span class="stat-label">Accuracy Rate</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ $breadcrumbs = [
|
|||||||
|
|
||||||
<style>
|
<style>
|
||||||
.quote-hero {
|
.quote-hero {
|
||||||
padding: 100px 0 30px;
|
padding: 100px 0 30px; /* padding-top overridden by main.css */
|
||||||
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
|
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ $keywords = "data cleaning UK, data validation, duplicate removal, data standard
|
|||||||
<title><?php echo htmlspecialchars($page_title); ?></title>
|
<title><?php echo htmlspecialchars($page_title); ?></title>
|
||||||
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
||||||
<meta name="keywords" content="<?php echo htmlspecialchars($keywords); ?>">
|
<meta name="keywords" content="<?php echo htmlspecialchars($keywords); ?>">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<!-- Open Graph -->
|
<!-- Open Graph -->
|
||||||
|
|||||||
@@ -402,7 +402,7 @@ $faqPageName = 'Financial Data Services FAQ';
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>Financial Data Services & Market Intelligence UK</h1>
|
<h1>Financial Data Services & Market Intelligence UK</h1>
|
||||||
<p class="hero-subtitle">FCA-aware financial data services for hedge funds, asset managers, and investment firms. Market data extraction, alternative data solutions, and compliant financial intelligence to support your investment strategies.</p>
|
<p class="hero-subtitle">FCA-aware financial data services for hedge funds, asset managers, and investment firms. Market data extraction, alternative data solutions, and compliant financial intelligence to support your investment strategies.</p>
|
||||||
<a href="/quote" class="btn btn-white">Request Consultation</a>
|
<a href="/quote" class="btn btn-primary">Request Consultation</a>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -381,7 +381,7 @@ $faqPageName = 'Property Data Extraction FAQ';
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>UK Property Data Extraction Services</h1>
|
<h1>UK Property Data Extraction Services</h1>
|
||||||
<p class="hero-subtitle">Professional property data extraction from Rightmove, Zoopla, OnTheMarket, and other UK property portals. GDPR-compliant property market intelligence for investors, analysts, estate agents, and property developers.</p>
|
<p class="hero-subtitle">Professional property data extraction from Rightmove, Zoopla, OnTheMarket, and other UK property portals. GDPR-compliant property market intelligence for investors, analysts, estate agents, and property developers.</p>
|
||||||
<a href="/quote" class="btn btn-white">Get a Free Consultation</a>
|
<a href="/quote" class="btn btn-primary">Get a Free Consultation</a>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -592,7 +592,7 @@ $breadcrumbs = [
|
|||||||
<span class="stat-label">Projects Delivered</span>
|
<span class="stat-label">Projects Delivered</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
<span class="stat-number">99.8%</span>
|
<span class="stat-number">99.7%</span>
|
||||||
<span class="stat-label">Data Accuracy</span>
|
<span class="stat-label">Data Accuracy</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat">
|
<div class="stat">
|
||||||
@@ -667,7 +667,7 @@ $breadcrumbs = [
|
|||||||
<p>From simple static pages to complex JavaScript applications, we handle all website technologies. Extract from one site or thousands simultaneously with our scalable infrastructure.</p>
|
<p>From simple static pages to complex JavaScript applications, we handle all website technologies. Extract from one site or thousands simultaneously with our scalable infrastructure.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="feature-card">
|
<div class="feature-card">
|
||||||
<h3>99.8% Data Accuracy</h3>
|
<h3>99.7% Data Accuracy</h3>
|
||||||
<p>Multi-layer validation, automated quality checks, and human review processes ensure the data you receive is accurate, complete, and properly formatted.</p>
|
<p>Multi-layer validation, automated quality checks, and human review processes ensure the data you receive is accurate, complete, and properly formatted.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="feature-card">
|
<div class="feature-card">
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ $page_title = "Thank You | UK Data Services";
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title><?php echo $page_title; ?></title>
|
<title><?php echo $page_title; ?></title>
|
||||||
<meta name="robots" content="noindex, nofollow">
|
<meta name="robots" content="noindex, nofollow">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="assets/css/main.css">
|
<link rel="stylesheet" href="assets/css/main.css">
|
||||||
<style>
|
<style>
|
||||||
.thank-you-container {
|
.thank-you-container {
|
||||||
@@ -127,6 +130,7 @@ $page_title = "Thank You | UK Data Services";
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<?php include($_SERVER["DOCUMENT_ROOT"] . "/includes/nav.php"); ?>
|
||||||
<div class="thank-you-container">
|
<div class="thank-you-container">
|
||||||
<div class="success-icon">🎉</div>
|
<div class="success-icon">🎉</div>
|
||||||
<h1>Thank You for Your Enquiry!</h1>
|
<h1>Thank You for Your Enquiry!</h1>
|
||||||
|
|||||||
@@ -6,6 +6,9 @@
|
|||||||
<title>Web Scraping Cost Calculator | UK Data Services</title>
|
<title>Web Scraping Cost Calculator | UK Data Services</title>
|
||||||
<meta name="description" content="Estimate your web scraping project cost instantly. Our free calculator helps UK businesses budget for data extraction, pricing intelligence, and market research projects.">
|
<meta name="description" content="Estimate your web scraping project cost instantly. Our free calculator helps UK businesses budget for data extraction, pricing intelligence, and market research projects.">
|
||||||
<meta name="keywords" content="web scraping cost, data extraction pricing, scraping quote, web scraping calculator UK">
|
<meta name="keywords" content="web scraping cost, data extraction pricing, scraping quote, web scraping calculator UK">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="https://ukdataservices.co.uk/tools/cost-calculator">
|
<link rel="canonical" href="https://ukdataservices.co.uk/tools/cost-calculator">
|
||||||
|
|
||||||
<!-- Open Graph -->
|
<!-- Open Graph -->
|
||||||
@@ -223,6 +226,7 @@
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<?php include($_SERVER["DOCUMENT_ROOT"] . "/includes/nav.php"); ?>
|
||||||
<!-- Header would be included here -->
|
<!-- Header would be included here -->
|
||||||
|
|
||||||
<div class="calculator-container">
|
<div class="calculator-container">
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ $canonical_url = "https://ukdataservices.co.uk/tools/data-converter";
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title><?php echo htmlspecialchars($page_title); ?></title>
|
<title><?php echo htmlspecialchars($page_title); ?></title>
|
||||||
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ $canonical_url = "https://ukdataservices.co.uk/tools/";
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title><?php echo htmlspecialchars($page_title); ?></title>
|
<title><?php echo htmlspecialchars($page_title); ?></title>
|
||||||
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
||||||
@@ -94,7 +97,7 @@ $canonical_url = "https://ukdataservices.co.uk/tools/";
|
|||||||
.tools-hero {
|
.tools-hero {
|
||||||
background: linear-gradient(135deg, #144784 0%, #179e83 100%);
|
background: linear-gradient(135deg, #144784 0%, #179e83 100%);
|
||||||
color: white;
|
color: white;
|
||||||
padding: 80px 20px;
|
padding: 80px 20px; /* padding-top overridden by main.css */
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.tools-hero h1 { font-size: 2.5em; margin-bottom: 15px; }
|
.tools-hero h1 { font-size: 2.5em; margin-bottom: 15px; }
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ $canonical_url = "https://ukdataservices.co.uk/tools/robots-analyzer";
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title><?php echo htmlspecialchars($page_title); ?></title>
|
<title><?php echo htmlspecialchars($page_title); ?></title>
|
||||||
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ $canonical_url = "https://ukdataservices.co.uk/tools/scrapeability-checker";
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title><?php echo htmlspecialchars($page_title); ?></title>
|
<title><?php echo htmlspecialchars($page_title); ?></title>
|
||||||
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
<meta name="description" content="<?php echo htmlspecialchars($page_description); ?>">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&family=Lato:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet">
|
||||||
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
<link rel="canonical" href="<?php echo htmlspecialchars($canonical_url); ?>">
|
||||||
|
|
||||||
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
<meta property="og:title" content="<?php echo htmlspecialchars($page_title); ?>">
|
||||||
|
|||||||
Reference in New Issue
Block a user