From 8d431b6cbd89996cc339f6d478767f85d4b47c28 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 8 Jun 2025 20:51:14 +0000 Subject: [PATCH] Backup database and code changes - 2025-06-08 20:51:14 --- .claude/settings.local.json | 4 +- .htaccess | 8 + 404.php | 2 +- about.php | 22 +- assets/css/main.css | 46 + assets/css/main.min.css | 3539 ++++++++++++++++- assets/js/main.js | 22 +- ...business-intelligence-dashboard-design.php | 23 +- .../cloud-native-scraping-architecture.php | 18 +- .../competitive-intelligence-roi-metrics.php | 23 +- ...ta-automation-strategies-uk-businesses.php | 6 +- .../data-protection-impact-assessments.php | 16 +- .../data-quality-validation-pipelines.php | 18 +- blog/articles/ecommerce-trends-uk-2025.php | 6 +- ...financial-services-data-transformation.php | 18 +- .../gdpr-data-minimisation-practices.php | 18 +- blog/articles/handling-captchas-scraping.php | 18 +- .../javascript-heavy-sites-scraping.php | 23 +- .../predictive-analytics-customer-churn.php | 23 +- .../python-scrapy-enterprise-guide.php | 18 +- .../real-time-analytics-streaming.php | 6 +- .../retail-competitor-monitoring-case.php | 6 +- .../retail-price-monitoring-strategies.php | 18 +- .../selenium-vs-playwright-comparison.php | 18 +- .../sql-analytics-advanced-techniques.php | 23 +- blog/articles/uk-cookie-law-compliance.php | 6 +- .../uk-property-market-data-trends.php | 18 +- .../web-scraping-compliance-uk-guide.php | 25 +- blog/articles/web-scraping-rate-limiting.php | 18 +- blog/categories/business-intelligence.php | 1 + blog/categories/case-studies.php | 1 + blog/categories/compliance.php | 1 + blog/categories/data-analytics.php | 1 + blog/categories/industry-insights.php | 1 + blog/categories/technology.php | 1 + blog/categories/web-scraping.php | 1 + blog/index.php | 51 +- blog/search.php | 453 +++ cookie-policy.php | 26 +- ..._200502.sql => db_backup_250608_205114.sql | 2 +- faq-enhanced.php | 10 +- faq.php | 31 +- gdpr-compliance.php | 24 +- index.php | 33 +- privacy-policy.php | 26 +- project-types.php | 32 +- quote.php | 17 +- robots.txt | 6 +- sitemap-blog.xml | 96 +- sitemap-index.xml | 6 +- sitemap-services.xml | 24 +- sitemap.xml | 11 +- terms-of-service.php | 24 +- 53 files changed, 4482 insertions(+), 406 deletions(-) create mode 100644 blog/search.php rename db_backup_250608_200502.sql => db_backup_250608_205114.sql (99%) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 48dbd2f..da8cd84 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -30,7 +30,9 @@ "Bash(sudo apt-get:*)", "Bash(sudo apt-get install:*)", "Bash(npm install:*)", - "Bash(terser:*)" + "Bash(terser:*)", + "Bash(curl:*)", + "Bash(cp:*)" ], "deny": [] } diff --git a/.htaccess b/.htaccess index 42f4e33..af4f353 100644 --- a/.htaccess +++ b/.htaccess @@ -135,6 +135,14 @@ Options -Indexes # Prevent access to logs and database directories RewriteEngine On + + # Clean URL rewriting - remove .php extension + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME}.php -f + RewriteRule ^(.+?)/?$ $1.php [L] + + # Security rules RewriteRule ^logs(/.*)?$ - [F,L] RewriteRule ^database(/.*)?$ - [F,L] RewriteRule ^\.git(/.*)?$ - [F,L] diff --git a/404.php b/404.php index e07a810..8ea7e5c 100644 --- a/404.php +++ b/404.php @@ -101,7 +101,7 @@ $page_description = "The page you're looking for doesn't exist. Explore our data diff --git a/about.php b/about.php index 23a0721..7fd4ab2 100644 --- a/about.php +++ b/about.php @@ -8,7 +8,7 @@ header('Referrer-Policy: strict-origin-when-cross-origin'); $page_title = "About Us | UK Data Services - Expert Data Solutions Team"; $page_description = "Meet the expert team behind UK Data Services. Learn about our experience, values, and commitment to delivering professional data solutions."; -$canonical_url = "https://ukdataservices.co.uk/about.php"; +$canonical_url = "https://ukdataservices.co.uk/about"; ?> @@ -34,8 +34,8 @@ $canonical_url = "https://ukdataservices.co.uk/about.php"; { "@context": "https://schema.org", "@type": "AboutPage", - "@id": "https://ukdataservices.co.uk/about.php#webpage", - "url": "https://ukdataservices.co.uk/about.php", + "@id": "https://ukdataservices.co.uk/about#webpage", + "url": "https://ukdataservices.co.uk/about", "name": "About UK Data Services", "description": "Learn about UK Data Services, our expert team, values, and commitment to delivering professional data solutions since 2018.", "mainEntity": { @@ -182,10 +182,11 @@ $canonical_url = "https://ukdataservices.co.uk/about.php"; @@ -349,9 +350,10 @@ $canonical_url = "https://ukdataservices.co.uk/about.php";

Company

diff --git a/assets/css/main.css b/assets/css/main.css index 11679e1..fbe171f 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -2094,6 +2094,11 @@ a:focus-visible { position: relative; } +.page-hero .hero-search form { + position: relative; + display: block; +} + .page-hero .hero-search input { width: 100%; padding: 15px 50px 15px 20px; @@ -2102,6 +2107,7 @@ a:focus-visible { font-size: 16px; background: rgba(255, 255, 255, 0.95); color: #333; + box-sizing: border-box; } .page-hero .hero-search button { @@ -2114,6 +2120,11 @@ a:focus-visible { font-size: 18px; cursor: pointer; color: #666; + transition: color 0.3s ease; +} + +.page-hero .hero-search button:hover { + color: #333; } /* Service Hero Section */ @@ -3500,4 +3511,39 @@ aside.related-articles { .capability-card h3 { font-size: 1.2rem; } +} + +/* Fix for navbar overlap on content pages */ +main { + padding-top: 90px; /* Add padding to account for fixed navbar (70px + 20px buffer) */ +} + +/* Specific fix for legal content pages */ +.legal-content { + padding-top: 120px !important; /* Override inline styles for legal pages */ +} + +/* Also ensure any page sections that might be affected have proper spacing */ +.page-content { + 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 */ } \ No newline at end of file diff --git a/assets/css/main.min.css b/assets/css/main.min.css index 8d546d5..62ec328 100644 --- a/assets/css/main.min.css +++ b/assets/css/main.min.css @@ -1 +1,3538 @@ -*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:'Roboto Slab',Lato,sans-serif;line-height:1.6;color:#444;background-color:#fff}.container{max-width:1200px;margin:0 auto;padding:0 20px}.btn{display:inline-block;padding:14px 28px;border:none;border-radius:8px;text-decoration:none;font-weight:500;font-size:16px;text-align:center;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.1);font-family:inherit;line-height:1.4;white-space:nowrap;min-height:48px;display:inline-flex;align-items:center;justify-content:center}.btn-primary{background:#179e83;color:#fff!important;text-decoration:none!important}.btn-primary:hover{transform:translateY(-2px);background:#11725e;box-shadow:0 4px 16px rgba(23,158,131,.3);color:#fff!important;text-decoration:none!important}.btn-secondary{background:#fff;color:#144784!important;border:2px solid #144784;text-decoration:none!important}.btn-secondary:hover{background:#144784;color:#fff!important;transform:translateY(-2px);text-decoration:none!important}.btn-full{width:100%}.highlight{background:linear-gradient(135deg,#179e83,#1bbc9b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-header{text-align:center;margin-bottom:60px}.section-header h2{font-size:2.5rem;font-weight:600;margin-bottom:16px;color:#1a1a1a}.section-header p{font-size:1.2rem;color:#666;max-width:600px;margin:0 auto}.navbar{position:fixed;top:0;width:100%;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.1);z-index:1000;transition:all .3s ease}.navbar.scrolled{background:rgba(255,255,255,.98);box-shadow:0 2px 20px rgba(0,0,0,.1)}.nav-container{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center;height:70px}.nav-logo img{height:40px;width:auto}.nav-menu{display:flex;align-items:center;gap:30px}.nav-link{text-decoration:none;color:#1a1a1a;font-weight:500;transition:color .3s ease}.nav-link:hover{color:#144784}.nav-link.cta-button{background:#179e83;color:#fff;padding:10px 20px;border-radius:6px;transition:all .3s ease}.nav-link.cta-button:hover{transform:translateY(-2px);background:#11725e;box-shadow:0 4px 16px rgba(23,158,131,.3)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.bar{width:25px;height:3px;background:#1a1a1a;margin:3px 0;transition:.3s}.hero{padding:120px 0 80px;background:linear-gradient(135deg,#252d3b 0,#144784 100%);min-height:100vh;display:flex;align-items:center;color:#fff;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;right:0;width:50%;height:100%;background:url('data:image/svg+xml,') no-repeat center;background-size:contain;animation:float 6s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}.hero-container{max-width:1200px;margin:0 auto;padding:0 20px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.hero-content{animation:fadeInUp 1s ease}.hero-title{font-size:3.5rem;font-weight:700;line-height:1.2;margin-bottom:24px;color:#fff}.hero-subtitle{font-size:1.3rem;color:#fff;margin-bottom:40px;line-height:1.6;opacity:.9}.hero-buttons{display:flex;gap:20px;margin-bottom:60px}.hero-stats{display:flex;gap:40px}.stat{text-align:center}.stat-number{display:block;font-size:2rem;font-weight:700;color:#fff}.stat-label{display:block;font-size:.9rem;color:#fff;font-weight:500}.hero-image{animation:fadeInRight 1s ease;position:relative;z-index:2}.hero-graphic{width:100%;height:auto;max-width:500px;animation:float 6s ease-in-out infinite}.hero-graphic svg{width:100%;height:auto;filter:drop-shadow(0 10px 30px rgba(0, 0, 0, .1))}.hero-graphic .bg-circle-1{animation:rotate 20s linear infinite;transform-origin:center}.hero-graphic .bg-circle-2{animation:rotate 15s linear infinite reverse;transform-origin:center}.hero-graphic .browser-main{animation:pulse 4s ease-in-out infinite}.hero-graphic .database{animation:pulse 6s ease-in-out infinite}.hero-graphic .dashboard{animation:pulse 5s ease-in-out infinite}.hero-graphic .chart-bar-1{animation:grow-bar 3s ease-in-out infinite}.hero-graphic .chart-bar-2{animation:grow-bar 3s ease-in-out infinite .5s}.hero-graphic .chart-bar-3{animation:grow-bar 3s ease-in-out infinite 1s}.hero-graphic .chart-bar-4{animation:grow-bar 3s ease-in-out infinite 1.5s}.hero-graphic .chart-bar-5{animation:grow-bar 3s ease-in-out infinite 2s}.hero-graphic .extraction-path{stroke-dasharray:200;stroke-dashoffset:200;animation:draw-line 4s ease-in-out infinite}@keyframes rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes grow-bar{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.3)}}@keyframes draw-line{0%{stroke-dashoffset:200}50%{stroke-dashoffset:0}100%{stroke-dashoffset:-200}}@keyframes data-pulse{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.hero-img{width:100%;height:auto;max-width:500px}.services{padding:100px 0;background:#fff}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:30px}.service-card{background:#fff;padding:40px;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.08);transition:all .3s ease;border:1px solid #f0f0f0}.service-card:hover{transform:translateY(-8px);box-shadow:0 8px 40px rgba(0,0,0,.12)}.service-icon{width:60px;height:60px;margin-bottom:24px}.service-icon img{width:100%;height:100%}.service-card h3{font-size:1.5rem;font-weight:600;margin-bottom:16px;color:#1a1a1a}.service-card p{color:#666;margin-bottom:20px;line-height:1.6}.service-card ul{list-style:none}.service-card li{padding:8px 0;color:#555;position:relative;padding-left:20px}.service-card li:before{content:'✓';position:absolute;left:0;color:#179e83;font-weight:700}.process{padding:100px 0;background:#f8f9fa}.process-steps{max-width:800px;margin:0 auto}.step{display:flex;align-items:flex-start;margin-bottom:50px;animation:fadeInUp .6s ease}.step:last-child{margin-bottom:0}.step-number{background:#179e83;color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem;margin-right:30px;flex-shrink:0}.step-content h3{font-size:1.4rem;font-weight:600;margin-bottom:12px;color:#1a1a1a}.step-content p{color:#666;line-height:1.6}.why-us{padding:100px 0;background:#fff}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px}.feature{text-align:center;padding:30px;animation:fadeInUp .6s ease}.feature-icon{width:80px;height:80px;margin:0 auto 24px}.feature-icon img{width:100%;height:100%}.feature h3{font-size:1.3rem;font-weight:600;margin-bottom:16px;color:#1a1a1a}.feature p{color:#666;line-height:1.6}.contact{padding:100px 0;background:#f8f9fa}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.contact-info h2{font-size:2.5rem;font-weight:600;margin-bottom:20px;color:#1a1a1a}.contact-info p{font-size:1.2rem;color:#666;margin-bottom:40px;line-height:1.6}.contact-details{display:flex;flex-direction:column;gap:30px}.contact-item{display:flex;align-items:center;gap:20px}.contact-item img{width:40px;height:40px}.contact-item strong{display:block;font-weight:600;color:#1a1a1a;margin-bottom:4px}.contact-item p{margin:0;color:#666}.contact-item a{color:#179e83;text-decoration:none}.contact-item a:hover{text-decoration:underline}.contact-form{background:#fff;padding:40px;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.08)}.form-group{margin-bottom:24px}.form-group label{display:block;font-weight:500;margin-bottom:8px;color:#1a1a1a}.form-group input,.form-group select,.form-group textarea{width:100%;padding:14px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:border-color .3s ease;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:#179e83;box-shadow:0 0 0 3px rgba(23,158,131,.1)}.form-group textarea{resize:vertical;min-height:120px}.footer{background:#151f25;color:#fff;padding:60px 0 30px}.footer-content{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}.footer-section h3{font-size:1.2rem;font-weight:600;margin-bottom:20px;color:#fff}.footer-section ul{list-style:none}.footer-section li{margin-bottom:12px}.footer-section a{color:#ccc;text-decoration:none;transition:color .3s ease}.footer-section a:hover{color:#179e83}.footer-logo img{height:40px;margin-bottom:20px}.footer-section p{color:#ccc;line-height:1.6}.footer-bottom{border-top:1px solid #333;padding-top:30px;display:flex;justify-content:space-between;align-items:center}.social-links{display:flex;gap:20px}.social-links a{display:block;width:40px;height:40px}.social-links img{width:100%;height:100%;filter:invert(1);transition:filter .3s ease}.social-links a:hover img{filter:invert(.7) sepia(1) saturate(2) hue-rotate(240deg)}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes slideInFromBottom{from{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.animate-on-scroll{opacity:0;transform:translateY(30px);transition:all .8s ease-out}.animate-on-scroll.animated{opacity:1;transform:translateY(0)}.service-card{animation:slideInFromBottom .6s ease-out forwards;animation-delay:var(--animation-delay, 0s)}.feature{animation:fadeInUp .6s ease-out forwards;animation-delay:var(--animation-delay, 0s)}.step{animation:fadeInLeft .6s ease-out forwards;animation-delay:var(--animation-delay, 0s)}@media (max-width:768px){.featured-grid{grid-template-columns:1fr}.featured-article.main-feature{grid-row:span 1}.articles-grid{grid-template-columns:1fr}.newsletter-form .form-group{flex-direction:column}.article-title{font-size:2.2rem}.article-author{flex-direction:column;text-align:center;gap:15px}.blog-categories h2,.blog-featured h2,.blog-recent h2{font-size:2rem}}@media (max-width:768px){.nav-menu{position:fixed;left:-100%;top:70px;flex-direction:column;background-color:#fff;width:100%;text-align:center;transition:.3s;box-shadow:0 10px 27px rgba(0,0,0,.05);padding:40px 0;gap:20px}.nav-menu.active{left:0}.nav-toggle{display:flex}.nav-toggle.active .bar:nth-child(2){opacity:0}.nav-toggle.active .bar:first-child{transform:translateY(8px) rotate(45deg)}.nav-toggle.active .bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.hero-container{grid-template-columns:1fr;gap:40px;text-align:center}.hero-title{font-size:2.5rem}.hero-buttons{flex-direction:column;align-items:center}.hero-stats{justify-content:center;gap:30px}.section-header h2{font-size:2rem}.services-grid{grid-template-columns:1fr}.features-grid{grid-template-columns:1fr}.contact-content{grid-template-columns:1fr;gap:40px}.footer-content{grid-template-columns:1fr;gap:30px;text-align:center}.footer-bottom{flex-direction:column;gap:20px;text-align:center}}@media (max-width:480px){.container{padding:0 15px}.hero{padding:100px 0 60px}.hero-title{font-size:2rem}.hero-subtitle{font-size:1.1rem}.btn{padding:12px 24px;font-size:14px}.contact-form,.service-card{padding:30px 20px}.step{flex-direction:column;text-align:center}.step-number{margin:0 0 20px 0}}img{max-width:100%;height:auto;loading:lazy}.logo{height:auto;max-height:50px;width:auto}.footer-logo img{height:40px;width:auto}.loading{opacity:.6;pointer-events:none}.blog-categories{padding:80px 0;background:#f8f9fa}.blog-categories h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.blog-featured{padding:80px 0;background:#fff}.blog-featured h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.featured-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.featured-article{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #f0f0f0;transition:all .3s ease}.featured-article:hover{transform:translateY(-5px);box-shadow:0 8px 40px rgba(0,0,0,.12)}.featured-article.main-feature{grid-row:span 2}.featured-article .article-image{height:200px;overflow:hidden}.featured-article.main-feature .article-image{height:300px}.featured-article .article-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.featured-article:hover .article-image img{transform:scale(1.05)}.featured-article .article-content{padding:30px}.article-meta{display:flex;align-items:center;gap:15px;margin-bottom:15px;font-size:14px}.article-meta .category{background:#179e83;color:#fff;padding:5px 12px;border-radius:15px;font-weight:500;text-decoration:none}.article-meta time{color:#666;font-weight:500}.article-meta .read-time{color:#666;font-weight:500}.featured-article h3{font-size:1.4rem;font-weight:600;margin-bottom:15px;line-height:1.3}.featured-article h3 a{color:#1a1a1a;text-decoration:none;transition:color .3s ease}.featured-article h3 a:hover{color:#179e83}.featured-article p{color:#666;line-height:1.6;margin-bottom:20px}.article-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f0f0f0;padding-top:15px;margin-top:15px}.article-footer .read-more{color:#179e83;text-decoration:none;font-weight:500;transition:color .3s ease}.article-footer .read-more:hover{color:#144784;text-decoration:underline}.blog-recent{padding:80px 0;background:#f8f9fa}.blog-recent h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.articles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:30px;margin-bottom:50px}.article-card{background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #f0f0f0;transition:all .3s ease}.article-card:hover{transform:translateY(-5px);box-shadow:0 8px 40px rgba(0,0,0,.12)}.article-card h3{font-size:1.3rem;font-weight:600;margin-bottom:15px;line-height:1.3}.article-card h3 a{color:#1a1a1a;text-decoration:none;transition:color .3s ease}.article-card h3 a:hover{color:#179e83}.article-card p{color:#666;line-height:1.6;margin-bottom:20px}.blog-pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:40px}.pagination-info{color:#666;font-weight:500}.blog-newsletter{padding:80px 0;background:linear-gradient(135deg,#144784 0,#179e83 100%);color:#fff;text-align:center}.newsletter-content h2{font-size:2.5rem;font-weight:600;margin-bottom:20px;color:#fff}.newsletter-content p{font-size:1.2rem;margin-bottom:40px;opacity:.95;max-width:600px;margin-left:auto;margin-right:auto}.newsletter-form .form-group{display:flex;max-width:500px;margin:0 auto 20px;gap:15px}.newsletter-form input{flex:1;padding:15px 20px;border:none;border-radius:50px;font-size:16px;background:rgba(255,255,255,.95);color:#333}.newsletter-form .btn{padding:15px 30px;border-radius:50px;white-space:nowrap}.newsletter-privacy{font-size:14px;opacity:.8;max-width:400px;margin:0 auto}.newsletter-privacy a{color:#fff;text-decoration:underline}.blog-article{padding:40px 0 80px;background:#fff;position:relative;clear:both;width:100%}.blog-article .container{max-width:1200px;margin:0 auto;padding:0 20px;position:relative}.article-header{max-width:800px;margin:0 auto 40px;text-align:center}.article-title{font-size:3rem;font-weight:700;margin-bottom:20px;color:#1a1a1a;line-height:1.2}.article-subtitle{font-size:1.3rem;color:#666;margin-bottom:30px;line-height:1.6}.article-author{display:flex;justify-content:space-between;align-items:center;margin-top:30px;text-align:left}.author-info strong{color:#1a1a1a;font-weight:600;display:block;margin-bottom:5px}.author-info p{color:#666;margin:0;font-size:14px}.article-share a{color:#179e83;text-decoration:none;font-weight:500;padding:8px 16px;border:1px solid #179e83;border-radius:6px;transition:all .3s ease}.article-share a:hover{background:#179e83;color:#fff}.article-image{max-width:1000px;margin:0 auto 40px;border-radius:16px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.12)}.article-image img{width:100%;height:auto;display:block}.article-toc{max-width:800px;margin:0 auto 40px;background:#f8f9fa;padding:30px;border-radius:12px;border:1px solid #e1e5e9}.article-toc h2{font-size:1.3rem;font-weight:600;margin-bottom:20px;color:#1a1a1a}.article-toc ol{list-style:none;counter-reset:toc-counter}.article-toc li{counter-increment:toc-counter;margin-bottom:10px}.article-toc li::before{content:counter(toc-counter) ". ";color:#179e83;font-weight:600}.article-toc a{color:#144784;text-decoration:none;font-weight:500;transition:color .3s ease}.article-toc a:hover{color:#179e83;text-decoration:underline}.article-content{max-width:800px;margin:0 auto;line-height:1.7;background:#fff;position:relative;z-index:1}.article-content pre{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:0;margin:25px 0;overflow-x:auto;position:relative}.article-content pre code{display:block;background:0 0;border:none;border-radius:0;padding:20px;font-family:Monaco,Menlo,'Ubuntu Mono',Consolas,'Courier New',monospace;font-size:14px;line-height:1.6;color:#495057;white-space:pre;overflow-x:auto;margin:0}.article-content code{background:#f1f3f4;padding:2px 6px;border-radius:4px;font-family:Monaco,Menlo,'Ubuntu Mono',Consolas,'Courier New',monospace;font-size:.9em;color:#d63384}.article-content pre code{background:0 0;padding:20px;color:#495057}.article-content pre{position:relative;cursor:pointer}.article-content pre:hover::before{content:'📋 Copy';position:absolute;top:10px;right:10px;background:#179e83;color:#fff;padding:5px 10px;border-radius:4px;font-size:12px;cursor:pointer;z-index:10}.article-content pre[data-copied]:hover::before{content:'✅ Copied!';background:#10b981}.article-content pre:hover{border-color:#179e83;box-shadow:0 2px 8px rgba(23,158,131,.1)}.article-content h2{font-size:2rem;font-weight:600;margin:40px 0 20px;color:#1a1a1a;border-bottom:2px solid #179e83;padding-bottom:10px}.article-content h3{font-size:1.5rem;font-weight:600;margin:30px 0 15px;color:#144784}.article-content p{margin-bottom:20px;color:#444}.article-content ol,.article-content ul{margin-bottom:20px;padding-left:25px}.article-content li{margin-bottom:8px;color:#444}.article-content a{color:#179e83;text-decoration:underline;transition:color .3s ease}.article-content a:hover{color:#144784}.callout-box{background:#f8f9fa;border-left:4px solid #179e83;padding:20px;margin:30px 0;border-radius:0 8px 8px 0}.callout-box.legal-warning{background:#fff3cd;border-left-color:#f59e0b}.callout-box h3{margin-top:0;margin-bottom:15px;color:#1a1a1a}.comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin:30px 0;width:100%;clear:both}.comparison-item{background:#fff;padding:25px;border-radius:12px;border:1px solid #e1e5e9;box-shadow:0 2px 8px rgba(0,0,0,.05)}.comparison-item h4{margin-bottom:15px;color:#144784;font-size:1.2rem}.best-practice-box{background:linear-gradient(135deg,#e8f5f3 0,#f0f9ff 100%);border:1px solid #179e83;border-radius:12px;padding:25px;margin:30px 0}.best-practice-box h3{margin-top:0;color:#144784}img{height:auto;max-width:100%}img[loading=lazy]{opacity:0;transition:opacity .3s ease}img[loading=lazy].loaded{opacity:1}picture img{width:100%;height:auto}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #179e83;outline-offset:2px;box-shadow:0 0 0 4px rgba(23,158,131,.1)}.reading-progress{position:fixed;top:70px;left:0;width:0%;height:3px;background:linear-gradient(90deg,#179e83,#144784);z-index:999;transition:width .3s ease}.category-link{background:#179e83;color:#fff!important;padding:5px 12px;border-radius:15px;font-weight:500;text-decoration:none;transition:background .3s ease}.category-link:hover{background:#144784;color:#fff!important;text-decoration:none}.loading::after{content:'';position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid #f3f3f3;border-top:2px solid #179e83;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.notification{position:fixed;top:20px;right:20px;z-index:10000;max-width:400px;padding:16px 20px;border-radius:8px;color:#fff;font-family:'Roboto Slab',sans-serif;font-size:14px;box-shadow:0 4px 12px rgba(0,0,0,.15);transition:all .3s ease}.notification-success{background:#10b981}.notification-error{background:#ef4444}.notification-info{background:#3b82f6}.notification-content{display:flex;justify-content:space-between;align-items:center;gap:12px}.notification-close{background:0 0;border:none;color:#fff;font-size:18px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.scroll-top-btn{position:fixed;bottom:30px;right:30px;width:50px;height:50px;border:none;border-radius:50%;background:linear-gradient(135deg,#179e83 0,#144784 100%);color:#fff;font-size:20px;cursor:pointer;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000;box-shadow:0 4px 12px rgba(0,0,0,.15)}.scroll-top-btn:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.2)}.tooltip{position:absolute;background:#1a1a1a;color:#fff;padding:8px 12px;border-radius:6px;font-size:14px;white-space:nowrap;z-index:10000;pointer-events:none;transition:opacity .3s ease}.form-group.error input,.form-group.error select,.form-group.error textarea{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.1)}.form-group.success input,.form-group.success select,.form-group.success textarea{border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.1)}.form-error-message{color:#ef4444;font-size:12px;margin-top:4px;display:block}img.loading{background:#f0f0f0;opacity:.7}img.loaded{transition:opacity .3s ease;opacity:1}.btn{position:relative;overflow:hidden}.btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn:hover::before{left:100%}@media print{.footer,.navbar,.notification,.scroll-top-btn{display:none!important}.hero{background:#fff!important;color:#000!important}.page-hero,.service-hero{background:#fff!important;color:#000!important}body{font-size:12pt;line-height:1.4}h1,h2,h3,h4,h5,h6{color:#000!important;page-break-after:avoid}.container{max-width:none;margin:0;padding:0}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline:2px solid #179e83;outline-offset:2px}@media (prefers-contrast:high){.btn-primary{background:#000;border:2px solid #000}.highlight{background:#000;-webkit-background-clip:text;-webkit-text-fill-color:transparent}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}@media (prefers-color-scheme:dark){:root{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--text-primary:#ffffff;--text-secondary:#cccccc}}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #179e83;outline-offset:2px;box-shadow:0 0 0 4px rgba(23,158,131,.1)}.skip-to-content{position:absolute;top:-40px;left:6px;background:#179e83;color:#fff;padding:8px;border-radius:4px;text-decoration:none;z-index:100000;transition:top .3s}.skip-to-content:focus{top:6px}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.error-container{position:relative}.form-group{position:relative}.form-group label{transition:all .3s ease}.form-group input:focus+label,.form-group select:focus+label,.form-group textarea:focus+label{color:#179e83}.status-indicator{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px}.status-online{background:#10b981;box-shadow:0 0 0 2px rgba(16,185,129,.3);animation:pulse-green 2s infinite}.status-offline{background:#ef4444}.status-pending{background:#f59e0b;animation:pulse-yellow 2s infinite}@keyframes pulse-green{0%{box-shadow:0 0 0 0 rgba(16,185,129,.7)}70%{box-shadow:0 0 0 6px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}@keyframes pulse-yellow{0%{box-shadow:0 0 0 0 rgba(245,158,11,.7)}70%{box-shadow:0 0 0 6px rgba(245,158,11,0)}100%{box-shadow:0 0 0 0 rgba(245,158,11,0)}}.breadcrumb{background:#f8f9fa;padding:20px 0;border-bottom:1px solid #e1e5e9}.breadcrumb nav{max-width:1200px;margin:0 auto;padding:0 20px}.breadcrumb ol{display:flex;list-style:none;margin:0;padding:0;align-items:center;gap:8px}.breadcrumb li{display:flex;align-items:center}.breadcrumb li:not(:last-child)::after{content:'>';margin-left:8px;color:#666;font-weight:500}.breadcrumb a{color:#179e83;text-decoration:none;font-weight:500;transition:color .3s ease}.breadcrumb a:hover{color:#144784;text-decoration:underline}.breadcrumb li[aria-current=page] span{color:#666;font-weight:500}.page-hero{background:linear-gradient(135deg,#144784 0,#179e83 100%);color:#fff;padding:120px 0 80px;text-align:center;position:relative;overflow:hidden}.page-hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,') no-repeat bottom;background-size:cover}.page-hero .hero-content{position:relative;z-index:2;max-width:800px;margin:0 auto}.page-hero h1{font-size:3rem;font-weight:700;margin-bottom:20px;color:#fff;line-height:1.2}.page-hero .hero-subtitle{font-size:1.25rem;margin-bottom:30px;opacity:.95;line-height:1.6}.page-hero .hero-stats{display:flex;justify-content:center;gap:40px;margin-top:40px}.page-hero .hero-search{max-width:500px;margin:30px auto 0;position:relative}.page-hero .hero-search input{width:100%;padding:15px 50px 15px 20px;border:none;border-radius:50px;font-size:16px;background:rgba(255,255,255,.95);color:#333}.page-hero .hero-search button{position:absolute;right:15px;top:50%;transform:translateY(-50%);background:0 0;border:none;font-size:18px;cursor:pointer;color:#666}.service-hero{background:linear-gradient(135deg,#144784 0,#179e83 100%);color:#fff;padding:120px 0 80px;text-align:center;position:relative}.service-hero .hero-content{max-width:900px;margin:0 auto}.service-hero h1{font-size:3rem;font-weight:700;margin-bottom:20px;line-height:1.2}.service-hero .hero-subtitle{font-size:1.25rem;margin-bottom:40px;opacity:.95;line-height:1.6}.service-hero .hero-stats{display:flex;justify-content:center;gap:40px;margin:40px 0}.service-hero .hero-cta{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.service-features{padding:80px 0;background:#f8f9fa}.service-features h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.service-features .features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:30px;max-width:1200px;margin:0 auto}.feature-card{background:#fff;padding:40px;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.08);transition:all .3s ease;border:1px solid #f0f0f0}.feature-card:hover{transform:translateY(-8px);box-shadow:0 8px 40px rgba(0,0,0,.12)}.feature-card .feature-icon{font-size:3rem;margin-bottom:20px;display:block}.feature-card h3{font-size:1.5rem;font-weight:600;margin-bottom:16px;color:#1a1a1a}.feature-card p{color:#666;margin-bottom:20px;line-height:1.6}.feature-card ul{list-style:none;padding:0}.feature-card li{padding:8px 0;color:#555;position:relative;padding-left:20px}.feature-card li:before{content:'✓';position:absolute;left:0;color:#179e83;font-weight:700}.industries{padding:80px 0;background:#fff}.industries h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.industries-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;max-width:1200px;margin:0 auto}.industry-card{background:#f8f9fa;padding:30px;border-radius:12px;transition:all .3s ease;border:1px solid #e1e5e9}.industry-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px rgba(0,0,0,.1);background:#fff}.industry-card h3{font-size:1.3rem;font-weight:600;margin-bottom:12px;color:#144784}.industry-card p{color:#666;line-height:1.6}.pricing{padding:80px 0;background:#f8f9fa}.pricing h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;max-width:1000px;margin:0 auto}.pricing-card{background:#fff;padding:40px 30px;border-radius:16px;text-align:center;position:relative;border:2px solid #e1e5e9;transition:all .3s ease}.pricing-card.featured{border-color:#179e83;transform:scale(1.05);box-shadow:0 8px 40px rgba(23,158,131,.15)}.pricing-card.featured::before{content:'Most Popular';position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:#179e83;color:#fff;padding:8px 20px;border-radius:20px;font-size:14px;font-weight:600}.pricing-card h3{font-size:1.5rem;font-weight:600;margin-bottom:20px;color:#1a1a1a}.pricing-card .price{font-size:3rem;font-weight:700;color:#179e83;margin-bottom:30px;line-height:1}.pricing-card .price span{font-size:1rem;color:#666;font-weight:400}.pricing-card ul{list-style:none;padding:0;margin-bottom:30px}.pricing-card li{padding:10px 0;color:#666;border-bottom:1px solid #f0f0f0}.pricing-card li:last-child{border-bottom:none}.pricing-card .pricing-note{font-size:14px;color:#999;margin-top:20px;font-style:italic}.pricing-cta{text-align:center;margin-top:50px}.faq{padding:80px 0;background:#fff}.faq h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.faq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px;max-width:1200px;margin:0 auto}.faq-item{background:#f8f9fa;border-radius:12px;overflow:hidden;border:1px solid #e1e5e9}.faq-item h3{background:#144784;color:#fff;padding:20px;margin:0;font-size:1.2rem;font-weight:600}.faq-item p{padding:20px;margin:0;color:#666;line-height:1.6}.faq-categories{padding:60px 0;background:#fff}.categories-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px;max-width:1200px;margin:0 auto}.category-card{background:#f8f9fa;padding:30px;border-radius:12px;text-align:center;text-decoration:none;color:inherit;transition:all .3s ease;border:1px solid #e1e5e9}.category-card:hover{transform:translateY(-5px);background:#fff;box-shadow:0 8px 25px rgba(0,0,0,.1);color:inherit;text-decoration:none}.category-icon{font-size:3rem;margin-bottom:20px;display:block}.category-card h3{font-size:1.3rem;font-weight:600;margin-bottom:12px;color:#144784}.category-card p{color:#666;line-height:1.4;margin:0}.faq-content{padding:60px 0;background:#f8f9fa}.faq-section{max-width:1000px;margin:0 auto 60px}.faq-section h2{font-size:2rem;font-weight:600;margin-bottom:40px;color:#1a1a1a;border-bottom:3px solid #179e83;padding-bottom:10px}.faq-question{width:100%;background:#fff;border:none;padding:20px;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:1.1rem;font-weight:600;color:#1a1a1a;border-radius:8px;margin-bottom:2px;transition:all .3s ease;box-shadow:0 2px 4px rgba(0,0,0,.05)}.faq-question:hover{background:#f8f9fa;transform:translateX(5px)}.faq-question[aria-expanded=true]{background:#179e83;color:#fff}.faq-icon{font-size:1.5rem;font-weight:700;transition:transform .3s ease}.faq-question[aria-expanded=true] .faq-icon{transform:rotate(45deg)}.faq-answer{display:none;background:#fff;padding:20px;border-radius:0 0 8px 8px;border-top:1px solid #e1e5e9;margin-bottom:20px}.faq-answer p{margin-bottom:15px;color:#666;line-height:1.6}.faq-answer ul{margin-left:20px;margin-bottom:15px}.faq-answer li{margin-bottom:8px;color:#666;line-height:1.5}.faq-cta{padding:80px 0;background:linear-gradient(135deg,#144784 0,#179e83 100%);color:#fff;text-align:center}.faq-cta h2{font-size:2.5rem;font-weight:600;margin-bottom:20px;color:#fff}.faq-cta p{font-size:1.2rem;margin-bottom:40px;opacity:.95}.faq-cta .cta-buttons{display:flex;justify-content:center;gap:20px;margin-bottom:50px;flex-wrap:wrap}.contact-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:30px;max-width:800px;margin:0 auto}.contact-option{display:flex;align-items:center;justify-content:center;gap:15px;text-align:left}.contact-icon{font-size:2rem}.contact-option strong{display:block;margin-bottom:5px;color:#fff}.contact-option p{margin:0;opacity:.9}.contact-option a{color:#fff;text-decoration:none}.contact-option a:hover{text-decoration:underline}.cta{padding:80px 0;background:linear-gradient(135deg,#144784 0,#179e83 100%);color:#fff;text-align:center}.cta-content h2{font-size:2.5rem;font-weight:600;margin-bottom:20px;color:#fff}.cta-content p{font-size:1.2rem;margin-bottom:40px;opacity:.95;max-width:600px;margin-left:auto;margin-right:auto}.cta-buttons{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.case-study{background:#fff;border-radius:16px;padding:40px;margin-bottom:40px;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #f0f0f0}.case-study.featured{border:2px solid #179e83;box-shadow:0 8px 40px rgba(23,158,131,.15)}.case-study-content{display:grid;grid-template-columns:2fr 1fr;gap:40px;align-items:start}.case-study-meta{display:flex;gap:15px;margin-bottom:20px}.case-study-meta span{background:#f0f0f0;color:#666;padding:5px 12px;border-radius:15px;font-size:14px;font-weight:500}.case-study h3{font-size:1.8rem;font-weight:600;margin-bottom:15px;color:#1a1a1a;line-height:1.3}.case-study-intro{font-size:1.1rem;color:#666;margin-bottom:30px;line-height:1.6}.challenge,.results,.solution{margin-bottom:30px}.challenge h4,.results h4,.solution h4{font-size:1.2rem;font-weight:600;margin-bottom:15px;color:#144784}.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:20px;margin:20px 0}.result-item{text-align:center;padding:20px;background:#f8f9fa;border-radius:12px}.result-number{font-size:2rem;font-weight:700;color:#179e83;display:block;margin-bottom:5px}.result-label{font-size:14px;color:#666;font-weight:500}.testimonial{background:#f8f9fa;padding:30px;border-radius:12px;margin-top:30px;border-left:4px solid #179e83}.testimonial p{font-style:italic;font-size:1.1rem;color:#444;margin-bottom:20px;line-height:1.6}.testimonial cite{display:block;font-style:normal}.testimonial cite strong{color:#1a1a1a;font-weight:600;display:block;margin-bottom:5px}.testimonial cite span{color:#666;font-size:14px}.case-study-visual{background:#f8f9fa;padding:30px;border-radius:12px;text-align:center}.chart-container h5{font-size:1.1rem;font-weight:600;margin-bottom:20px;color:#1a1a1a}.industries-overview{padding:80px 0;background:#fff}.industries-overview h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.industry-stat{text-align:center;padding:30px;background:#f8f9fa;border-radius:12px;transition:all .3s ease}.industry-stat:hover{transform:translateY(-5px);background:#fff;box-shadow:0 8px 25px rgba(0,0,0,.1)}.industry-icon{font-size:3rem;margin-bottom:20px;display:block}.industry-stat h3{font-size:1.3rem;font-weight:600;margin-bottom:15px;color:#144784}.industry-stat .stat-number{font-size:2.5rem;font-weight:700;color:#179e83;display:block;margin-bottom:5px}.industry-stat .stat-label{font-size:14px;color:#666;font-weight:500}.related-articles{padding:60px 0;background:#f8f9fa;border-top:1px solid #e1e5e9;margin-top:60px}.related-articles h2,.related-articles h3{font-size:2rem;font-weight:600;margin-bottom:40px;color:#1a1a1a;text-align:center}aside.related-articles{padding:40px 0;background:#f8f9fa;border-top:1px solid #e1e5e9;margin-top:40px}.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;max-width:1000px;margin:0 auto}.related-card{background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 15px rgba(0,0,0,.08);border:1px solid #e1e5e9;transition:all .3s ease}.related-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px rgba(0,0,0,.12)}.related-card h3,.related-card h4{font-size:1.3rem;font-weight:600;margin-bottom:15px;line-height:1.3}.related-card h3 a,.related-card h4 a{color:#1a1a1a;text-decoration:none;transition:color .3s ease}.related-card h3 a:hover,.related-card h4 a:hover{color:#179e83}.related-card .category{background:#179e83;color:#fff;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:500;display:inline-block;margin-bottom:12px}.related-card span.category{display:inline-block;margin-bottom:12px}.related-card p{color:#666;line-height:1.6;margin-bottom:15px}.related-card .read-time{color:#179e83;font-size:14px;font-weight:500}.btn *{color:inherit;text-decoration:inherit}.btn:active,.btn:link,.btn:visited{color:inherit;text-decoration:none}.btn-primary,.btn-primary:active,.btn-primary:link,.btn-primary:visited{color:#fff!important;text-decoration:none!important}.btn-primary:focus,.btn-primary:hover{color:#fff!important;text-decoration:none!important}.expert-consultation-cta{background:linear-gradient(135deg,#f8f9fa 0,#e9ecef 100%);border:2px solid #179e83;border-radius:12px;padding:40px;text-align:center;margin:40px 0;clear:both;width:100%;box-sizing:border-box}.expert-consultation-cta h3{color:#144784;font-size:1.5rem;margin-bottom:15px;font-weight:600}.expert-consultation-cta p{color:#666;margin-bottom:25px;font-size:1.1rem;line-height:1.6}.expert-consultation-cta .btn{font-size:1.1rem;padding:15px 30px;min-width:200px;font-weight:600}.testimonials{padding:80px 0;background:#f8f9fa}.testimonials h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.testimonials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:30px;max-width:1200px;margin:0 auto}.testimonial-card{background:#fff;padding:40px;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #f0f0f0;position:relative}.testimonial-card::before{content:'"';position:absolute;top:-10px;left:30px;font-size:4rem;color:#179e83;font-family:serif;line-height:1}.testimonial-content p{font-style:italic;font-size:1.1rem;color:#444;margin-bottom:30px;line-height:1.6}.testimonial-author{display:flex;justify-content:space-between;align-items:center}.author-info strong{color:#1a1a1a;font-weight:600;display:block;margin-bottom:5px}.author-info span{color:#666;font-size:14px}.company-logo{width:60px;height:40px;display:flex;align-items:center;justify-content:center}.company-logo img{max-width:100%;max-height:100%;filter:grayscale(100%);opacity:.7}.social-proof{padding:80px 0;background:#fff}.social-proof h2{text-align:center;font-size:2.5rem;font-weight:600;margin-bottom:60px;color:#1a1a1a}.client-logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:30px;margin:40px 0 60px;padding:40px 0;border-top:1px solid #e1e5e9;border-bottom:1px solid #e1e5e9}.logo-item{display:flex;align-items:center;justify-content:center;padding:20px;background:#f8f9fa;border-radius:8px;min-height:80px;color:#999;font-weight:500;text-align:center;transition:all .3s ease}.logo-item:hover{background:#fff;box-shadow:0 4px 15px rgba(0,0,0,.1);transform:translateY(-2px)}@media (max-width:768px){.case-study-content{grid-template-columns:1fr;gap:30px}.results-grid{grid-template-columns:repeat(2,1fr);gap:15px}.pricing-grid{grid-template-columns:1fr}.pricing-card.featured{transform:none;margin:20px 0}.categories-grid{grid-template-columns:repeat(2,1fr);gap:20px}.contact-options{grid-template-columns:1fr;gap:20px}.contact-option{justify-content:flex-start}.faq-grid{grid-template-columns:1fr}.page-hero h1,.service-hero h1{font-size:2.2rem}.breadcrumb ol{flex-wrap:wrap}.client-logos{grid-template-columns:repeat(2,1fr);gap:20px}}@media (max-width:480px){.categories-grid{grid-template-columns:1fr}.results-grid{grid-template-columns:1fr}.case-study{padding:30px 20px}.page-hero .hero-stats,.service-hero .hero-stats{flex-direction:column;gap:20px}.hero-cta{flex-direction:column;align-items:center}.cta-buttons{flex-direction:column;align-items:center}.related-grid{grid-template-columns:1fr;gap:20px}.related-card{padding:25px 20px}.expert-consultation-cta{padding:30px 20px;margin:30px 0}.article-content pre{margin:20px -20px;border-radius:0;border-left:none;border-right:none}.article-content pre code{padding:15px 20px;font-size:13px}.article-content pre:hover::before{top:5px;right:5px;font-size:11px;padding:4px 8px}}.technology-showcase{padding:80px 0;background:linear-gradient(135deg,#f8fafc 0,#e2e8f0 100%);position:relative}.technology-showcase::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,');opacity:.3;pointer-events:none}.technology-showcase .container{position:relative;z-index:1}.technology-showcase h2{text-align:center;margin-bottom:50px;color:#1a202c;font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#144784 0,#179e83 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;max-width:1000px;margin:0 auto}.tech-card{background:#fff;padding:40px 30px;border-radius:16px;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.08);transition:all .3s ease;border:1px solid #e2e8f0;position:relative;overflow:hidden}.tech-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(135deg,#144784 0,#179e83 100%);transform:scaleX(0);transition:transform .3s ease}.tech-card:hover::before{transform:scaleX(1)}.tech-card:hover{transform:translateY(-8px);box-shadow:0 12px 40px rgba(0,0,0,.15);border-color:#cbd5e0}.tech-icon{font-size:3rem;margin-bottom:20px;display:block;line-height:1;filter:grayscale(.2);transition:all .3s ease}.tech-card:hover .tech-icon{transform:scale(1.1);filter:grayscale(0)}.tech-card h3{color:#1a202c;font-size:1.5rem;font-weight:600;margin:0 0 15px 0;transition:color .3s ease}.tech-card:hover h3{color:#144784}.tech-card p{color:#64748b;font-size:1rem;line-height:1.6;margin:0;font-weight:500}@media (max-width:768px){.technology-showcase{padding:60px 0}.technology-showcase h2{font-size:2rem;margin-bottom:40px}.tech-grid{grid-template-columns:1fr;gap:20px}.tech-card{padding:30px 20px}.tech-icon{font-size:2.5rem;margin-bottom:15px}.tech-card h3{font-size:1.3rem}}.capabilities-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;margin:40px 0}.capability-card{background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.08);border-left:4px solid #179e83;transition:all .3s ease;position:relative;overflow:hidden}.capability-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px rgba(0,0,0,.12);border-left-color:#144784}.capability-card h3{color:#1a202c;font-size:1.3rem;font-weight:600;margin:0 0 15px 0;transition:color .3s ease}.capability-card:hover h3{color:#144784}.capability-card p{color:#64748b;line-height:1.6;margin:0 0 20px 0}.capability-card ul{list-style:none;padding:0;margin:0}.capability-card li{color:#4a5568;margin:8px 0;padding-left:20px;position:relative;font-size:.95rem}.capability-card li::before{content:'✓';position:absolute;left:0;color:#179e83;font-weight:700;font-size:1rem}.tech-tag{display:inline-block;background:linear-gradient(135deg,#144784 0,#179e83 100%);color:#fff;padding:6px 12px;border-radius:20px;font-size:.9rem;margin:4px 8px 4px 0;font-weight:500;transition:all .3s ease}.tech-tag:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(20,71,132,.3)}@media (max-width:768px){.capabilities-grid{grid-template-columns:1fr;gap:20px;margin:30px 0}.capability-card{padding:25px 20px}.capability-card h3{font-size:1.2rem}} \ No newline at end of file +/* CSS Reset and Base Styles */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: 'Roboto Slab', 'Lato', sans-serif; + line-height: 1.6; + color: #444444; + background-color: #ffffff; +} + +/* Utility Classes */ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; +} + +.btn { + display: inline-block; + padding: 14px 28px; + border: none; + border-radius: 8px; + text-decoration: none; + font-weight: 500; + font-size: 16px; + text-align: center; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + font-family: inherit; + line-height: 1.4; + white-space: nowrap; + min-height: 48px; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.btn-primary { + background: #179e83; + color: white !important; + text-decoration: none !important; +} + +.btn-primary:hover { + transform: translateY(-2px); + background: #11725e; + box-shadow: 0 4px 16px rgba(23, 158, 131, 0.3); + color: white !important; + text-decoration: none !important; +} + +.btn-secondary { + background: white; + color: #144784 !important; + border: 2px solid #144784; + text-decoration: none !important; +} + +.btn-secondary:hover { + background: #144784; + color: white !important; + transform: translateY(-2px); + text-decoration: none !important; +} + +.btn-full { + width: 100%; +} + +.highlight { + background: linear-gradient(135deg, #179e83, #1bbc9b); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.section-header { + text-align: center; + margin-bottom: 60px; +} + +.section-header h2 { + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 16px; + color: #1a1a1a; +} + +.section-header p { + font-size: 1.2rem; + color: #666; + max-width: 600px; + margin: 0 auto; +} + +/* Navigation */ +.navbar { + position: fixed; + top: 0; + width: 100%; + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + z-index: 1000; + transition: all 0.3s ease; +} + +.navbar.scrolled { + background: rgba(255, 255, 255, 0.98); + box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1); +} + +.nav-container { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; + display: flex; + justify-content: space-between; + align-items: center; + height: 70px; +} + +.nav-logo img { + height: 40px; + width: auto; +} + +.nav-menu { + display: flex; + align-items: center; + gap: 30px; +} + +.nav-link { + text-decoration: none; + color: #1a1a1a; + font-weight: 500; + transition: color 0.3s ease; +} + +.nav-link:hover { + color: #144784; +} + +.nav-link.cta-button { + background: #179e83; + color: white; + padding: 10px 20px; + border-radius: 6px; + transition: all 0.3s ease; +} + +.nav-link.cta-button:hover { + transform: translateY(-2px); + background: #11725e; + box-shadow: 0 4px 16px rgba(23, 158, 131, 0.3); +} + +.nav-toggle { + display: none; + flex-direction: column; + cursor: pointer; +} + +.bar { + width: 25px; + height: 3px; + background: #1a1a1a; + margin: 3px 0; + transition: 0.3s; +} + +/* Hero Section */ +.hero { + padding: 120px 0 80px; + background: linear-gradient(135deg, #252d3b 0%, #144784 100%); + min-height: 100vh; + display: flex; + align-items: center; + color: white; + position: relative; + overflow: hidden; +} + +.hero::before { + content: ''; + position: absolute; + top: 0; + right: 0; + width: 50%; + height: 100%; + background: url('data:image/svg+xml,') no-repeat center; + background-size: contain; + animation: float 6s ease-in-out infinite; +} + +@keyframes float { + 0%, 100% { transform: translateY(0px); } + 50% { transform: translateY(-20px); } +} + +.hero-container { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + align-items: center; +} + +.hero-content { + animation: fadeInUp 1s ease; +} + +.hero-title { + font-size: 3.5rem; + font-weight: 700; + line-height: 1.2; + margin-bottom: 24px; + color: #ffffff; +} + +.hero-subtitle { + font-size: 1.3rem; + color: #ffffff; + margin-bottom: 40px; + line-height: 1.6; + opacity: 0.9; +} + +.hero-buttons { + display: flex; + gap: 20px; + margin-bottom: 60px; +} + +.hero-stats { + display: flex; + gap: 40px; +} + +.stat { + text-align: center; +} + +.stat-number { + display: block; + font-size: 2rem; + font-weight: 700; + color: #ffffff; +} + +.stat-label { + display: block; + font-size: 0.9rem; + color: #ffffff; + font-weight: 500; +} + +.hero-image { + animation: fadeInRight 1s ease; + position: relative; + z-index: 2; +} + +.hero-graphic { + width: 100%; + height: auto; + max-width: 500px; + animation: float 6s ease-in-out infinite; +} + +.hero-graphic svg { + width: 100%; + height: auto; + filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.1)); +} + +/* Hero Graphic Animations */ +.hero-graphic .bg-circle-1 { + animation: rotate 20s linear infinite; + transform-origin: center; +} + +.hero-graphic .bg-circle-2 { + animation: rotate 15s linear infinite reverse; + transform-origin: center; +} + +.hero-graphic .browser-main { + animation: pulse 4s ease-in-out infinite; +} + +.hero-graphic .database { + animation: pulse 6s ease-in-out infinite; +} + +.hero-graphic .dashboard { + animation: pulse 5s ease-in-out infinite; +} + +.hero-graphic .chart-bar-1 { + animation: grow-bar 3s ease-in-out infinite; +} + +.hero-graphic .chart-bar-2 { + animation: grow-bar 3s ease-in-out infinite 0.5s; +} + +.hero-graphic .chart-bar-3 { + animation: grow-bar 3s ease-in-out infinite 1s; +} + +.hero-graphic .chart-bar-4 { + animation: grow-bar 3s ease-in-out infinite 1.5s; +} + +.hero-graphic .chart-bar-5 { + animation: grow-bar 3s ease-in-out infinite 2s; +} + +.hero-graphic .extraction-path { + stroke-dasharray: 200; + stroke-dashoffset: 200; + animation: draw-line 4s ease-in-out infinite; +} + +@keyframes rotate { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +} + +@keyframes grow-bar { + 0%, 100% { transform: scaleY(1); } + 50% { transform: scaleY(1.3); } +} + +@keyframes draw-line { + 0% { stroke-dashoffset: 200; } + 50% { stroke-dashoffset: 0; } + 100% { stroke-dashoffset: -200; } +} + +@keyframes data-pulse { + 0%, 100% { opacity: 0.7; transform: scale(1); } + 50% { opacity: 1; transform: scale(1.1); } +} + +.hero-img { + width: 100%; + height: auto; + max-width: 500px; +} + +/* Services Section */ +.services { + padding: 100px 0; + background: white; +} + +.services-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 30px; +} + +.service-card { + background: white; + padding: 40px; + border-radius: 16px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + transition: all 0.3s ease; + border: 1px solid #f0f0f0; +} + +.service-card:hover { + transform: translateY(-8px); + box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12); +} + +.service-icon { + width: 60px; + height: 60px; + margin-bottom: 24px; +} + +.service-icon img { + width: 100%; + height: 100%; +} + +.service-card h3 { + font-size: 1.5rem; + font-weight: 600; + margin-bottom: 16px; + color: #1a1a1a; +} + +.service-card p { + color: #666; + margin-bottom: 20px; + line-height: 1.6; +} + +.service-card ul { + list-style: none; +} + +.service-card li { + padding: 8px 0; + color: #555; + position: relative; + padding-left: 20px; +} + +.service-card li:before { + content: '✓'; + position: absolute; + left: 0; + color: #179e83; + font-weight: bold; +} + +/* Process Section */ +.process { + padding: 100px 0; + background: #f8f9fa; +} + +.process-steps { + max-width: 800px; + margin: 0 auto; +} + +.step { + display: flex; + align-items: flex-start; + margin-bottom: 50px; + animation: fadeInUp 0.6s ease; +} + +.step:last-child { + margin-bottom: 0; +} + +.step-number { + background: #179e83; + color: white; + width: 60px; + height: 60px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 1.2rem; + margin-right: 30px; + flex-shrink: 0; +} + +.step-content h3 { + font-size: 1.4rem; + font-weight: 600; + margin-bottom: 12px; + color: #1a1a1a; +} + +.step-content p { + color: #666; + line-height: 1.6; +} + +/* Why Us Section */ +.why-us { + padding: 100px 0; + background: white; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 40px; +} + +.feature { + text-align: center; + padding: 30px; + animation: fadeInUp 0.6s ease; +} + +.feature-icon { + width: 80px; + height: 80px; + margin: 0 auto 24px; +} + +.feature-icon img { + width: 100%; + height: 100%; +} + +.feature h3 { + font-size: 1.3rem; + font-weight: 600; + margin-bottom: 16px; + color: #1a1a1a; +} + +.feature p { + color: #666; + line-height: 1.6; +} + +/* Contact Section */ +.contact { + padding: 100px 0; + background: #f8f9fa; +} + +.contact-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + align-items: start; +} + +.contact-info h2 { + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 20px; + color: #1a1a1a; +} + +.contact-info p { + font-size: 1.2rem; + color: #666; + margin-bottom: 40px; + line-height: 1.6; +} + +.contact-details { + display: flex; + flex-direction: column; + gap: 30px; +} + +.contact-item { + display: flex; + align-items: center; + gap: 20px; +} + +.contact-item img { + width: 40px; + height: 40px; +} + +.contact-item strong { + display: block; + font-weight: 600; + color: #1a1a1a; + margin-bottom: 4px; +} + +.contact-item p { + margin: 0; + color: #666; +} + +.contact-item a { + color: #179e83; + text-decoration: none; +} + +.contact-item a:hover { + text-decoration: underline; +} + +/* Form Styles */ +.contact-form { + background: white; + padding: 40px; + border-radius: 16px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); +} + +.form-group { + margin-bottom: 24px; +} + +.form-group label { + display: block; + font-weight: 500; + margin-bottom: 8px; + color: #1a1a1a; +} + +.form-group input, +.form-group select, +.form-group textarea { + width: 100%; + padding: 14px 16px; + border: 2px solid #e1e5e9; + border-radius: 8px; + font-size: 16px; + transition: border-color 0.3s ease; + background: white; +} + +.form-group input:focus, +.form-group select:focus, +.form-group textarea:focus { + outline: none; + border-color: #179e83; + box-shadow: 0 0 0 3px rgba(23, 158, 131, 0.1); +} + +.form-group textarea { + resize: vertical; + min-height: 120px; +} + +/* Footer */ +.footer { + background: #151f25; + color: white; + padding: 60px 0 30px; +} + +.footer-content { + display: grid; + grid-template-columns: 2fr 1fr 1fr 1fr; + gap: 40px; + margin-bottom: 40px; +} + +.footer-section h3 { + font-size: 1.2rem; + font-weight: 600; + margin-bottom: 20px; + color: white; +} + +.footer-section ul { + list-style: none; +} + +.footer-section li { + margin-bottom: 12px; +} + +.footer-section a { + color: #ccc; + text-decoration: none; + transition: color 0.3s ease; +} + +.footer-section a:hover { + color: #179e83; +} + +.footer-logo img { + height: 40px; + margin-bottom: 20px; +} + +.footer-section p { + color: #ccc; + line-height: 1.6; +} + +.footer-bottom { + border-top: 1px solid #333; + padding-top: 30px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.social-links { + display: flex; + gap: 20px; +} + +.social-links a { + display: block; + width: 40px; + height: 40px; +} + +.social-links img { + width: 100%; + height: 100%; + filter: invert(1); + transition: filter 0.3s ease; +} + +.social-links a:hover img { + filter: invert(0.7) sepia(1) saturate(2) hue-rotate(240deg); +} + +/* Animations */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes fadeInRight { + from { + opacity: 0; + transform: translateX(30px); + } + to { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes fadeInLeft { + from { + opacity: 0; + transform: translateX(-30px); + } + to { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes float { + 0%, 100% { transform: translateY(0px); } + 50% { transform: translateY(-20px); } +} + +@keyframes pulse { + 0%, 100% { transform: scale(1); } + 50% { transform: scale(1.05); } +} + +@keyframes slideInFromBottom { + from { + opacity: 0; + transform: translateY(50px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Animation Classes */ +.animate-on-scroll { + opacity: 0; + transform: translateY(30px); + transition: all 0.8s ease-out; +} + +.animate-on-scroll.animated { + opacity: 1; + transform: translateY(0); +} + +.service-card { + animation: slideInFromBottom 0.6s ease-out forwards; + animation-delay: var(--animation-delay, 0s); +} + +.feature { + animation: fadeInUp 0.6s ease-out forwards; + animation-delay: var(--animation-delay, 0s); +} + +.step { + animation: fadeInLeft 0.6s ease-out forwards; + animation-delay: var(--animation-delay, 0s); +} + +/* Blog responsive styles */ +@media (max-width: 768px) { + .featured-grid { + grid-template-columns: 1fr; + } + + .featured-article.main-feature { + grid-row: span 1; + } + + .articles-grid { + grid-template-columns: 1fr; + } + + .newsletter-form .form-group { + flex-direction: column; + } + + .article-title { + font-size: 2.2rem; + } + + .article-author { + flex-direction: column; + text-align: center; + gap: 15px; + } + + .blog-categories h2, + .blog-featured h2, + .blog-recent h2 { + font-size: 2rem; + } +} + +/* Responsive Design */ +@media (max-width: 768px) { + .nav-menu { + position: fixed; + left: -100%; + top: 70px; + flex-direction: column; + background-color: white; + width: 100%; + text-align: center; + transition: 0.3s; + box-shadow: 0 10px 27px rgba(0, 0, 0, 0.05); + padding: 40px 0; + gap: 20px; + } + + .nav-menu.active { + left: 0; + } + + .nav-toggle { + display: flex; + } + + .nav-toggle.active .bar:nth-child(2) { + opacity: 0; + } + + .nav-toggle.active .bar:nth-child(1) { + transform: translateY(8px) rotate(45deg); + } + + .nav-toggle.active .bar:nth-child(3) { + transform: translateY(-8px) rotate(-45deg); + } + + .hero-container { + grid-template-columns: 1fr; + gap: 40px; + text-align: center; + } + + .hero-title { + font-size: 2.5rem; + } + + .hero-buttons { + flex-direction: column; + align-items: center; + } + + .hero-stats { + justify-content: center; + gap: 30px; + } + + .section-header h2 { + font-size: 2rem; + } + + .services-grid { + grid-template-columns: 1fr; + } + + .features-grid { + grid-template-columns: 1fr; + } + + .contact-content { + grid-template-columns: 1fr; + gap: 40px; + } + + .footer-content { + grid-template-columns: 1fr; + gap: 30px; + text-align: center; + } + + .footer-bottom { + flex-direction: column; + gap: 20px; + text-align: center; + } +} + +@media (max-width: 480px) { + .container { + padding: 0 15px; + } + + .hero { + padding: 100px 0 60px; + } + + .hero-title { + font-size: 2rem; + } + + .hero-subtitle { + font-size: 1.1rem; + } + + .btn { + padding: 12px 24px; + font-size: 14px; + } + + .service-card, + .contact-form { + padding: 30px 20px; + } + + .step { + flex-direction: column; + text-align: center; + } + + .step-number { + margin: 0 0 20px 0; + } +} + +/* Performance Optimizations */ +img { + max-width: 100%; + height: auto; + loading: lazy; +} + +/* Logo specific styles */ +.logo { + height: auto; + max-height: 50px; + width: auto; +} + +.footer-logo img { + height: 40px; + width: auto; +} + +/* Favicon links don't need display properties */ + +/* Loading states */ +.loading { + opacity: 0.6; + pointer-events: none; +} + +/* Blog-specific styles */ +.blog-categories { + padding: 80px 0; + background: #f8f9fa; +} + +.blog-categories h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.blog-featured { + padding: 80px 0; + background: white; +} + +.blog-featured h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.featured-grid { + display: grid; + grid-template-columns: 2fr 1fr 1fr; + gap: 30px; +} + +.featured-article { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + border: 1px solid #f0f0f0; + transition: all 0.3s ease; +} + +.featured-article:hover { + transform: translateY(-5px); + box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12); +} + +.featured-article.main-feature { + grid-row: span 2; +} + +.featured-article .article-image { + height: 200px; + overflow: hidden; +} + +.featured-article.main-feature .article-image { + height: 300px; +} + +.featured-article .article-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.3s ease; +} + +.featured-article:hover .article-image img { + transform: scale(1.05); +} + +.featured-article .article-content { + padding: 30px; +} + +.article-meta { + display: flex; + align-items: center; + gap: 15px; + margin-bottom: 15px; + font-size: 14px; +} + +.article-meta .category { + background: #179e83; + color: white; + padding: 5px 12px; + border-radius: 15px; + font-weight: 500; + text-decoration: none; +} + +.article-meta time { + color: #666; + font-weight: 500; +} + +.article-meta .read-time { + color: #666; + font-weight: 500; +} + +.featured-article h3 { + font-size: 1.4rem; + font-weight: 600; + margin-bottom: 15px; + line-height: 1.3; +} + +.featured-article h3 a { + color: #1a1a1a; + text-decoration: none; + transition: color 0.3s ease; +} + +.featured-article h3 a:hover { + color: #179e83; +} + +.featured-article p { + color: #666; + line-height: 1.6; + margin-bottom: 20px; +} + +.article-footer { + display: flex; + justify-content: space-between; + align-items: center; + border-top: 1px solid #f0f0f0; + padding-top: 15px; + margin-top: 15px; +} + +.article-footer .read-more { + color: #179e83; + text-decoration: none; + font-weight: 500; + transition: color 0.3s ease; +} + +.article-footer .read-more:hover { + color: #144784; + text-decoration: underline; +} + +.blog-recent { + padding: 80px 0; + background: #f8f9fa; +} + +.blog-recent h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.articles-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 30px; + margin-bottom: 50px; +} + +.article-card { + background: white; + padding: 30px; + border-radius: 12px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + border: 1px solid #f0f0f0; + transition: all 0.3s ease; +} + +.article-card:hover { + transform: translateY(-5px); + box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12); +} + +.article-card h3 { + font-size: 1.3rem; + font-weight: 600; + margin-bottom: 15px; + line-height: 1.3; +} + +.article-card h3 a { + color: #1a1a1a; + text-decoration: none; + transition: color 0.3s ease; +} + +.article-card h3 a:hover { + color: #179e83; +} + +.article-card p { + color: #666; + line-height: 1.6; + margin-bottom: 20px; +} + +.blog-pagination { + display: flex; + justify-content: center; + align-items: center; + gap: 20px; + margin-top: 40px; +} + +.pagination-info { + color: #666; + font-weight: 500; +} + +.blog-newsletter { + padding: 80px 0; + background: linear-gradient(135deg, #144784 0%, #179e83 100%); + color: white; + text-align: center; +} + +.newsletter-content h2 { + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 20px; + color: white; +} + +.newsletter-content p { + font-size: 1.2rem; + margin-bottom: 40px; + opacity: 0.95; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.newsletter-form .form-group { + display: flex; + max-width: 500px; + margin: 0 auto 20px; + gap: 15px; +} + +.newsletter-form input { + flex: 1; + padding: 15px 20px; + border: none; + border-radius: 50px; + font-size: 16px; + background: rgba(255, 255, 255, 0.95); + color: #333; +} + +.newsletter-form .btn { + padding: 15px 30px; + border-radius: 50px; + white-space: nowrap; +} + +.newsletter-privacy { + font-size: 14px; + opacity: 0.8; + max-width: 400px; + margin: 0 auto; +} + +.newsletter-privacy a { + color: white; + text-decoration: underline; +} + +/* Blog article styles */ +.blog-article { + padding: 40px 0 80px; + background: white; + position: relative; + clear: both; + width: 100%; +} + +.blog-article .container { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; + position: relative; +} + +.article-header { + max-width: 800px; + margin: 0 auto 40px; + text-align: center; +} + +.article-title { + font-size: 3rem; + font-weight: 700; + margin-bottom: 20px; + color: #1a1a1a; + line-height: 1.2; +} + +.article-subtitle { + font-size: 1.3rem; + color: #666; + margin-bottom: 30px; + line-height: 1.6; +} + +.article-author { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 30px; + text-align: left; +} + +.author-info strong { + color: #1a1a1a; + font-weight: 600; + display: block; + margin-bottom: 5px; +} + +.author-info p { + color: #666; + margin: 0; + font-size: 14px; +} + +.article-share a { + color: #179e83; + text-decoration: none; + font-weight: 500; + padding: 8px 16px; + border: 1px solid #179e83; + border-radius: 6px; + transition: all 0.3s ease; +} + +.article-share a:hover { + background: #179e83; + color: white; +} + +.article-image { + max-width: 1000px; + margin: 0 auto 40px; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12); +} + +.article-image img { + width: 100%; + height: auto; + display: block; +} + +.article-toc { + max-width: 800px; + margin: 0 auto 40px; + background: #f8f9fa; + padding: 30px; + border-radius: 12px; + border: 1px solid #e1e5e9; +} + +.article-toc h2 { + font-size: 1.3rem; + font-weight: 600; + margin-bottom: 20px; + color: #1a1a1a; +} + +.article-toc ol { + list-style: none; + counter-reset: toc-counter; +} + +.article-toc li { + counter-increment: toc-counter; + margin-bottom: 10px; +} + +.article-toc li::before { + content: counter(toc-counter) ". "; + color: #179e83; + font-weight: 600; +} + +.article-toc a { + color: #144784; + text-decoration: none; + font-weight: 500; + transition: color 0.3s ease; +} + +.article-toc a:hover { + color: #179e83; + text-decoration: underline; +} + +.article-content { + max-width: 800px; + margin: 0 auto; + line-height: 1.7; + background: white; + position: relative; + z-index: 1; +} + +.article-content pre { + background: #f8f9fa; + border: 1px solid #e9ecef; + border-radius: 8px; + padding: 0; + margin: 25px 0; + overflow-x: auto; + position: relative; +} + +.article-content pre code { + display: block; + background: transparent; + border: none; + border-radius: 0; + padding: 20px; + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Courier New', monospace; + font-size: 14px; + line-height: 1.6; + color: #495057; + white-space: pre; + overflow-x: auto; + margin: 0; +} + +.article-content code { + background: #f1f3f4; + padding: 2px 6px; + border-radius: 4px; + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Courier New', monospace; + font-size: 0.9em; + color: #d63384; +} + +.article-content pre code { + background: transparent; + padding: 20px; + color: #495057; +} + +/* Code block copy button */ +.article-content pre { + position: relative; + cursor: pointer; +} + +.article-content pre:hover::before { + content: '📋 Copy'; + position: absolute; + top: 10px; + right: 10px; + background: #179e83; + color: white; + padding: 5px 10px; + border-radius: 4px; + font-size: 12px; + cursor: pointer; + z-index: 10; +} + +.article-content pre[data-copied]:hover::before { + content: '✅ Copied!'; + background: #10b981; +} + +.article-content pre:hover { + border-color: #179e83; + box-shadow: 0 2px 8px rgba(23, 158, 131, 0.1); +} + +.article-content h2 { + font-size: 2rem; + font-weight: 600; + margin: 40px 0 20px; + color: #1a1a1a; + border-bottom: 2px solid #179e83; + padding-bottom: 10px; +} + +.article-content h3 { + font-size: 1.5rem; + font-weight: 600; + margin: 30px 0 15px; + color: #144784; +} + +.article-content p { + margin-bottom: 20px; + color: #444; +} + +.article-content ul, +.article-content ol { + margin-bottom: 20px; + padding-left: 25px; +} + +.article-content li { + margin-bottom: 8px; + color: #444; +} + +.article-content a { + color: #179e83; + text-decoration: underline; + transition: color 0.3s ease; +} + +.article-content a:hover { + color: #144784; +} + +.callout-box { + background: #f8f9fa; + border-left: 4px solid #179e83; + padding: 20px; + margin: 30px 0; + border-radius: 0 8px 8px 0; +} + +.callout-box.legal-warning { + background: #fff3cd; + border-left-color: #f59e0b; +} + +.callout-box h3 { + margin-top: 0; + margin-bottom: 15px; + color: #1a1a1a; +} + +.comparison-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 20px; + margin: 30px 0; + width: 100%; + clear: both; +} + +.comparison-item { + background: white; + padding: 25px; + border-radius: 12px; + border: 1px solid #e1e5e9; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); +} + +.comparison-item h4 { + margin-bottom: 15px; + color: #144784; + font-size: 1.2rem; +} + +.best-practice-box { + background: linear-gradient(135deg, #e8f5f3 0%, #f0f9ff 100%); + border: 1px solid #179e83; + border-radius: 12px; + padding: 25px; + margin: 30px 0; +} + +.best-practice-box h3 { + margin-top: 0; + color: #144784; +} + +/* Image optimization */ +img { + height: auto; + max-width: 100%; +} + +/* Lazy loading support */ +img[loading="lazy"] { + opacity: 0; + transition: opacity 0.3s ease; +} + +img[loading="lazy"].loaded { + opacity: 1; +} + +/* WebP support with fallbacks */ +picture img { + width: 100%; + height: auto; +} + +/* Focus improvements for keyboard navigation */ +a:focus-visible, +button:focus-visible, +input:focus-visible, +textarea:focus-visible { + outline: 2px solid #179e83; + outline-offset: 2px; + box-shadow: 0 0 0 4px rgba(23, 158, 131, 0.1); +} + +/* Reading progress bar */ +.reading-progress { + position: fixed; + top: 70px; + left: 0; + width: 0%; + height: 3px; + background: linear-gradient(90deg, #179e83, #144784); + z-index: 999; + transition: width 0.3s ease; +} + +/* Category link styles */ +.category-link { + background: #179e83; + color: white !important; + padding: 5px 12px; + border-radius: 15px; + font-weight: 500; + text-decoration: none; + transition: background 0.3s ease; +} + +.category-link:hover { + background: #144784; + color: white !important; + text-decoration: none; +} + +.loading::after { + content: ''; + position: absolute; + top: 50%; + left: 50%; + width: 20px; + height: 20px; + margin: -10px 0 0 -10px; + border: 2px solid #f3f3f3; + border-top: 2px solid #179e83; + border-radius: 50%; + animation: spin 1s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* Notification styles */ +.notification { + position: fixed; + top: 20px; + right: 20px; + z-index: 10000; + max-width: 400px; + padding: 16px 20px; + border-radius: 8px; + color: white; + font-family: 'Roboto Slab', sans-serif; + font-size: 14px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + transition: all 0.3s ease; +} + +.notification-success { + background: #10b981; +} + +.notification-error { + background: #ef4444; +} + +.notification-info { + background: #3b82f6; +} + +.notification-content { + display: flex; + justify-content: space-between; + align-items: center; + gap: 12px; +} + +.notification-close { + background: none; + border: none; + color: white; + font-size: 18px; + cursor: pointer; + padding: 0; + width: 20px; + height: 20px; + display: flex; + align-items: center; + justify-content: center; +} + +/* Scroll to top button */ +.scroll-top-btn { + position: fixed; + bottom: 30px; + right: 30px; + width: 50px; + height: 50px; + border: none; + border-radius: 50%; + background: linear-gradient(135deg, #179e83 0%, #144784 100%); + color: white; + font-size: 20px; + cursor: pointer; + opacity: 0; + visibility: hidden; + transition: all 0.3s ease; + z-index: 1000; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); +} + +.scroll-top-btn:hover { + transform: translateY(-3px); + box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2); +} + +/* Tooltip styles */ +.tooltip { + position: absolute; + background: #1a1a1a; + color: white; + padding: 8px 12px; + border-radius: 6px; + font-size: 14px; + white-space: nowrap; + z-index: 10000; + pointer-events: none; + transition: opacity 0.3s ease; +} + +/* Form validation states */ +.form-group.error input, +.form-group.error select, +.form-group.error textarea { + border-color: #ef4444; + box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1); +} + +.form-group.success input, +.form-group.success select, +.form-group.success textarea { + border-color: #10b981; + box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1); +} + +.form-error-message { + color: #ef4444; + font-size: 12px; + margin-top: 4px; + display: block; +} + +/* Image loading states */ +img.loading { + background: #f0f0f0; + opacity: 0.7; +} + +img.loaded { + transition: opacity 0.3s ease; + opacity: 1; +} + +/* Enhanced button hover effects */ +.btn { + position: relative; + overflow: hidden; +} + +.btn::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); + transition: left 0.5s; +} + +.btn:hover::before { + left: 100%; +} + +/* Print styles */ +@media print { + .navbar, + .footer, + .scroll-top-btn, + .notification { + display: none !important; + } + + .hero { + background: white !important; + color: black !important; + } + + .page-hero, + .service-hero { + background: white !important; + color: black !important; + } + + body { + font-size: 12pt; + line-height: 1.4; + } + + h1, h2, h3, h4, h5, h6 { + color: black !important; + page-break-after: avoid; + } + + .container { + max-width: none; + margin: 0; + padding: 0; + } +} + +/* Accessibility */ +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +/* Focus styles for accessibility */ +button:focus, +input:focus, +select:focus, +textarea:focus, +a:focus { + outline: 2px solid #179e83; + outline-offset: 2px; +} + +/* High contrast mode support */ +@media (prefers-contrast: high) { + .btn-primary { + background: #000; + border: 2px solid #000; + } + + .highlight { + background: #000; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } +} + +/* Reduced motion support */ +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } +} + +/* Dark mode support */ +@media (prefers-color-scheme: dark) { + :root { + --bg-primary: #1a1a1a; + --bg-secondary: #2d2d2d; + --text-primary: #ffffff; + --text-secondary: #cccccc; + } +} + +/* Focus visible improvements */ +.btn:focus-visible, +input:focus-visible, +select:focus-visible, +textarea:focus-visible, +a:focus-visible { + outline: 2px solid #179e83; + outline-offset: 2px; + box-shadow: 0 0 0 4px rgba(23, 158, 131, 0.1); +} + +/* Skip to content link for accessibility */ +.skip-to-content { + position: absolute; + top: -40px; + left: 6px; + background: #179e83; + color: white; + padding: 8px; + border-radius: 4px; + text-decoration: none; + z-index: 100000; + transition: top 0.3s; +} + +.skip-to-content:focus { + top: 6px; +} + +/* Screen reader only content */ +.visually-hidden { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +/* Error page specific improvements */ +.error-container { + position: relative; +} + +/* Improved form styling */ +.form-group { + position: relative; +} + +.form-group label { + transition: all 0.3s ease; +} + +.form-group input:focus + label, +.form-group select:focus + label, +.form-group textarea:focus + label { + color: #179e83; +} + +/* Status indicators */ +.status-indicator { + display: inline-block; + width: 12px; + height: 12px; + border-radius: 50%; + margin-right: 8px; +} + +.status-online { + background: #10b981; + box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.3); + animation: pulse-green 2s infinite; +} + +.status-offline { + background: #ef4444; +} + +.status-pending { + background: #f59e0b; + animation: pulse-yellow 2s infinite; +} + +@keyframes pulse-green { + 0% { + box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); + } + 70% { + box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); + } + 100% { + box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); + } +} + +@keyframes pulse-yellow { + 0% { + box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7); + } + 70% { + box-shadow: 0 0 0 6px rgba(245, 158, 11, 0); + } + 100% { + box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); + } +} + +/* NEW COMPONENT STYLES - Missing CSS for enhanced pages */ + +/* Breadcrumb Navigation */ +.breadcrumb { + background: #f8f9fa; + padding: 20px 0; + border-bottom: 1px solid #e1e5e9; +} + +.breadcrumb nav { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; +} + +.breadcrumb ol { + display: flex; + list-style: none; + margin: 0; + padding: 0; + align-items: center; + gap: 8px; +} + +.breadcrumb li { + display: flex; + align-items: center; +} + +.breadcrumb li:not(:last-child)::after { + content: '>'; + margin-left: 8px; + color: #666; + font-weight: 500; +} + +.breadcrumb a { + color: #179e83; + text-decoration: none; + font-weight: 500; + transition: color 0.3s ease; +} + +.breadcrumb a:hover { + color: #144784; + text-decoration: underline; +} + +.breadcrumb li[aria-current="page"] span { + color: #666; + font-weight: 500; +} + +/* Page Hero Section */ +.page-hero { + background: linear-gradient(135deg, #144784 0%, #179e83 100%); + color: white; + padding: 120px 0 80px; + text-align: center; + position: relative; + overflow: hidden; +} + +.page-hero::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: url('data:image/svg+xml,') no-repeat bottom; + background-size: cover; +} + +.page-hero .hero-content { + position: relative; + z-index: 2; + max-width: 800px; + margin: 0 auto; +} + +.page-hero h1 { + font-size: 3rem; + font-weight: 700; + margin-bottom: 20px; + color: white; + line-height: 1.2; +} + +.page-hero .hero-subtitle { + font-size: 1.25rem; + margin-bottom: 30px; + opacity: 0.95; + line-height: 1.6; +} + +.page-hero .hero-stats { + display: flex; + justify-content: center; + gap: 40px; + margin-top: 40px; +} + +.page-hero .hero-search { + max-width: 500px; + margin: 30px auto 0; + position: relative; +} + +.page-hero .hero-search input { + width: 100%; + padding: 15px 50px 15px 20px; + border: none; + border-radius: 50px; + font-size: 16px; + background: rgba(255, 255, 255, 0.95); + color: #333; +} + +.page-hero .hero-search button { + position: absolute; + right: 15px; + top: 50%; + transform: translateY(-50%); + background: none; + border: none; + font-size: 18px; + cursor: pointer; + color: #666; +} + +/* Service Hero Section */ +.service-hero { + background: linear-gradient(135deg, #144784 0%, #179e83 100%); + color: white; + padding: 120px 0 80px; + text-align: center; + position: relative; +} + +.service-hero .hero-content { + max-width: 900px; + margin: 0 auto; +} + +.service-hero h1 { + font-size: 3rem; + font-weight: 700; + margin-bottom: 20px; + line-height: 1.2; +} + +.service-hero .hero-subtitle { + font-size: 1.25rem; + margin-bottom: 40px; + opacity: 0.95; + line-height: 1.6; +} + +.service-hero .hero-stats { + display: flex; + justify-content: center; + gap: 40px; + margin: 40px 0; +} + +.service-hero .hero-cta { + display: flex; + justify-content: center; + gap: 20px; + flex-wrap: wrap; +} + +/* Service Features Section */ +.service-features { + padding: 80px 0; + background: #f8f9fa; +} + +.service-features h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.service-features .features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 30px; + max-width: 1200px; + margin: 0 auto; +} + +.feature-card { + background: white; + padding: 40px; + border-radius: 16px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + transition: all 0.3s ease; + border: 1px solid #f0f0f0; +} + +.feature-card:hover { + transform: translateY(-8px); + box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12); +} + +.feature-card .feature-icon { + font-size: 3rem; + margin-bottom: 20px; + display: block; +} + +.feature-card h3 { + font-size: 1.5rem; + font-weight: 600; + margin-bottom: 16px; + color: #1a1a1a; +} + +.feature-card p { + color: #666; + margin-bottom: 20px; + line-height: 1.6; +} + +.feature-card ul { + list-style: none; + padding: 0; +} + +.feature-card li { + padding: 8px 0; + color: #555; + position: relative; + padding-left: 20px; +} + +.feature-card li:before { + content: '✓'; + position: absolute; + left: 0; + color: #179e83; + font-weight: bold; +} + +/* Industries Section */ +.industries { + padding: 80px 0; + background: white; +} + +.industries h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.industries-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 30px; + max-width: 1200px; + margin: 0 auto; +} + +.industry-card { + background: #f8f9fa; + padding: 30px; + border-radius: 12px; + transition: all 0.3s ease; + border: 1px solid #e1e5e9; +} + +.industry-card:hover { + transform: translateY(-5px); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); + background: white; +} + +.industry-card h3 { + font-size: 1.3rem; + font-weight: 600; + margin-bottom: 12px; + color: #144784; +} + +.industry-card p { + color: #666; + line-height: 1.6; +} + +/* Pricing Section */ +.pricing { + padding: 80px 0; + background: #f8f9fa; +} + +.pricing h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.pricing-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 30px; + max-width: 1000px; + margin: 0 auto; +} + +.pricing-card { + background: white; + padding: 40px 30px; + border-radius: 16px; + text-align: center; + position: relative; + border: 2px solid #e1e5e9; + transition: all 0.3s ease; +} + +.pricing-card.featured { + border-color: #179e83; + transform: scale(1.05); + box-shadow: 0 8px 40px rgba(23, 158, 131, 0.15); +} + +.pricing-card.featured::before { + content: 'Most Popular'; + position: absolute; + top: -12px; + left: 50%; + transform: translateX(-50%); + background: #179e83; + color: white; + padding: 8px 20px; + border-radius: 20px; + font-size: 14px; + font-weight: 600; +} + +.pricing-card h3 { + font-size: 1.5rem; + font-weight: 600; + margin-bottom: 20px; + color: #1a1a1a; +} + +.pricing-card .price { + font-size: 3rem; + font-weight: 700; + color: #179e83; + margin-bottom: 30px; + line-height: 1; +} + +.pricing-card .price span { + font-size: 1rem; + color: #666; + font-weight: 400; +} + +.pricing-card ul { + list-style: none; + padding: 0; + margin-bottom: 30px; +} + +.pricing-card li { + padding: 10px 0; + color: #666; + border-bottom: 1px solid #f0f0f0; +} + +.pricing-card li:last-child { + border-bottom: none; +} + +.pricing-card .pricing-note { + font-size: 14px; + color: #999; + margin-top: 20px; + font-style: italic; +} + +.pricing-cta { + text-align: center; + margin-top: 50px; +} + +/* FAQ Sections */ +.faq { + padding: 80px 0; + background: white; +} + +.faq h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.faq-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); + gap: 30px; + max-width: 1200px; + margin: 0 auto; +} + +.faq-item { + background: #f8f9fa; + border-radius: 12px; + overflow: hidden; + border: 1px solid #e1e5e9; +} + +.faq-item h3 { + background: #144784; + color: white; + padding: 20px; + margin: 0; + font-size: 1.2rem; + font-weight: 600; +} + +.faq-item p { + padding: 20px; + margin: 0; + color: #666; + line-height: 1.6; +} + +/* Enhanced FAQ Components */ +.faq-categories { + padding: 60px 0; + background: white; +} + +.categories-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 30px; + max-width: 1200px; + margin: 0 auto; +} + +.category-card { + background: #f8f9fa; + padding: 30px; + border-radius: 12px; + text-align: center; + text-decoration: none; + color: inherit; + transition: all 0.3s ease; + border: 1px solid #e1e5e9; +} + +.category-card:hover { + transform: translateY(-5px); + background: white; + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); + color: inherit; + text-decoration: none; +} + +.category-icon { + font-size: 3rem; + margin-bottom: 20px; + display: block; +} + +.category-card h3 { + font-size: 1.3rem; + font-weight: 600; + margin-bottom: 12px; + color: #144784; +} + +.category-card p { + color: #666; + line-height: 1.4; + margin: 0; +} + +.faq-content { + padding: 60px 0; + background: #f8f9fa; +} + +.faq-section { + max-width: 1000px; + margin: 0 auto 60px; +} + +.faq-section h2 { + font-size: 2rem; + font-weight: 600; + margin-bottom: 40px; + color: #1a1a1a; + border-bottom: 3px solid #179e83; + padding-bottom: 10px; +} + +.faq-question { + width: 100%; + background: white; + border: none; + padding: 20px; + text-align: left; + cursor: pointer; + display: flex; + justify-content: space-between; + align-items: center; + font-size: 1.1rem; + font-weight: 600; + color: #1a1a1a; + border-radius: 8px; + margin-bottom: 2px; + transition: all 0.3s ease; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); +} + +.faq-question:hover { + background: #f8f9fa; + transform: translateX(5px); +} + +.faq-question[aria-expanded="true"] { + background: #179e83; + color: white; +} + +.faq-icon { + font-size: 1.5rem; + font-weight: bold; + transition: transform 0.3s ease; +} + +.faq-question[aria-expanded="true"] .faq-icon { + transform: rotate(45deg); +} + +.faq-answer { + display: none; + background: white; + padding: 20px; + border-radius: 0 0 8px 8px; + border-top: 1px solid #e1e5e9; + margin-bottom: 20px; +} + +.faq-answer p { + margin-bottom: 15px; + color: #666; + line-height: 1.6; +} + +.faq-answer ul { + margin-left: 20px; + margin-bottom: 15px; +} + +.faq-answer li { + margin-bottom: 8px; + color: #666; + line-height: 1.5; +} + +.faq-cta { + padding: 80px 0; + background: linear-gradient(135deg, #144784 0%, #179e83 100%); + color: white; + text-align: center; +} + +.faq-cta h2 { + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 20px; + color: white; +} + +.faq-cta p { + font-size: 1.2rem; + margin-bottom: 40px; + opacity: 0.95; +} + +.faq-cta .cta-buttons { + display: flex; + justify-content: center; + gap: 20px; + margin-bottom: 50px; + flex-wrap: wrap; +} + +.contact-options { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 30px; + max-width: 800px; + margin: 0 auto; +} + +.contact-option { + display: flex; + align-items: center; + justify-content: center; + gap: 15px; + text-align: left; +} + +.contact-icon { + font-size: 2rem; +} + +.contact-option strong { + display: block; + margin-bottom: 5px; + color: white; +} + +.contact-option p { + margin: 0; + opacity: 0.9; +} + +.contact-option a { + color: white; + text-decoration: none; +} + +.contact-option a:hover { + text-decoration: underline; +} + +/* CTA Section */ +.cta { + padding: 80px 0; + background: linear-gradient(135deg, #144784 0%, #179e83 100%); + color: white; + text-align: center; +} + +.cta-content h2 { + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 20px; + color: white; +} + +.cta-content p { + font-size: 1.2rem; + margin-bottom: 40px; + opacity: 0.95; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +.cta-buttons { + display: flex; + justify-content: center; + gap: 20px; + flex-wrap: wrap; +} + +/* Case Studies Specific */ +.case-study { + background: white; + border-radius: 16px; + padding: 40px; + margin-bottom: 40px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + border: 1px solid #f0f0f0; +} + +.case-study.featured { + border: 2px solid #179e83; + box-shadow: 0 8px 40px rgba(23, 158, 131, 0.15); +} + +.case-study-content { + display: grid; + grid-template-columns: 2fr 1fr; + gap: 40px; + align-items: start; +} + +.case-study-meta { + display: flex; + gap: 15px; + margin-bottom: 20px; +} + +.case-study-meta span { + background: #f0f0f0; + color: #666; + padding: 5px 12px; + border-radius: 15px; + font-size: 14px; + font-weight: 500; +} + +.case-study h3 { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 15px; + color: #1a1a1a; + line-height: 1.3; +} + +.case-study-intro { + font-size: 1.1rem; + color: #666; + margin-bottom: 30px; + line-height: 1.6; +} + +.challenge, +.solution, +.results { + margin-bottom: 30px; +} + +.challenge h4, +.solution h4, +.results h4 { + font-size: 1.2rem; + font-weight: 600; + margin-bottom: 15px; + color: #144784; +} + +.results-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); + gap: 20px; + margin: 20px 0; +} + +.result-item { + text-align: center; + padding: 20px; + background: #f8f9fa; + border-radius: 12px; +} + +.result-number { + font-size: 2rem; + font-weight: 700; + color: #179e83; + display: block; + margin-bottom: 5px; +} + +.result-label { + font-size: 14px; + color: #666; + font-weight: 500; +} + +.testimonial { + background: #f8f9fa; + padding: 30px; + border-radius: 12px; + margin-top: 30px; + border-left: 4px solid #179e83; +} + +.testimonial p { + font-style: italic; + font-size: 1.1rem; + color: #444; + margin-bottom: 20px; + line-height: 1.6; +} + +.testimonial cite { + display: block; + font-style: normal; +} + +.testimonial cite strong { + color: #1a1a1a; + font-weight: 600; + display: block; + margin-bottom: 5px; +} + +.testimonial cite span { + color: #666; + font-size: 14px; +} + +.case-study-visual { + background: #f8f9fa; + padding: 30px; + border-radius: 12px; + text-align: center; +} + +.chart-container h5 { + font-size: 1.1rem; + font-weight: 600; + margin-bottom: 20px; + color: #1a1a1a; +} + +/* Industries Overview */ +.industries-overview { + padding: 80px 0; + background: white; +} + +.industries-overview h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.industry-stat { + text-align: center; + padding: 30px; + background: #f8f9fa; + border-radius: 12px; + transition: all 0.3s ease; +} + +.industry-stat:hover { + transform: translateY(-5px); + background: white; + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); +} + +.industry-icon { + font-size: 3rem; + margin-bottom: 20px; + display: block; +} + +.industry-stat h3 { + font-size: 1.3rem; + font-weight: 600; + margin-bottom: 15px; + color: #144784; +} + +.industry-stat .stat-number { + font-size: 2.5rem; + font-weight: 700; + color: #179e83; + display: block; + margin-bottom: 5px; +} + +.industry-stat .stat-label { + font-size: 14px; + color: #666; + font-weight: 500; +} + +/* Related Articles Section */ +.related-articles { + padding: 60px 0; + background: #f8f9fa; + border-top: 1px solid #e1e5e9; + margin-top: 60px; +} + +.related-articles h2, +.related-articles h3 { + font-size: 2rem; + font-weight: 600; + margin-bottom: 40px; + color: #1a1a1a; + text-align: center; +} + +/* Handle both aside and section elements */ +aside.related-articles { + padding: 40px 0; + background: #f8f9fa; + border-top: 1px solid #e1e5e9; + margin-top: 40px; +} + +.related-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 30px; + max-width: 1000px; + margin: 0 auto; +} + +.related-card { + background: white; + padding: 30px; + border-radius: 12px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08); + border: 1px solid #e1e5e9; + transition: all 0.3s ease; +} + +.related-card:hover { + transform: translateY(-5px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12); +} + +.related-card h3, +.related-card h4 { + font-size: 1.3rem; + font-weight: 600; + margin-bottom: 15px; + line-height: 1.3; +} + +.related-card h3 a, +.related-card h4 a { + color: #1a1a1a; + text-decoration: none; + transition: color 0.3s ease; +} + +.related-card h3 a:hover, +.related-card h4 a:hover { + color: #179e83; +} + +.related-card .category { + background: #179e83; + color: white; + padding: 4px 12px; + border-radius: 20px; + font-size: 0.8rem; + font-weight: 500; + display: inline-block; + margin-bottom: 12px; +} + +.related-card span.category { + display: inline-block; + margin-bottom: 12px; +} + +.related-card p { + color: #666; + line-height: 1.6; + margin-bottom: 15px; +} + +.related-card .read-time { + color: #179e83; + font-size: 14px; + font-weight: 500; +} + +/* Button text visibility fix */ +.btn * { + color: inherit; + text-decoration: inherit; +} + +.btn:visited, +.btn:link, +.btn:active { + color: inherit; + text-decoration: none; +} + +.btn-primary, +.btn-primary:visited, +.btn-primary:link, +.btn-primary:active { + color: white !important; + text-decoration: none !important; +} + +.btn-primary:hover, +.btn-primary:focus { + color: white !important; + text-decoration: none !important; +} + +/* Expert Consultation CTA */ +.expert-consultation-cta { + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + border: 2px solid #179e83; + border-radius: 12px; + padding: 40px; + text-align: center; + margin: 40px 0; + clear: both; + width: 100%; + box-sizing: border-box; +} + +.expert-consultation-cta h3 { + color: #144784; + font-size: 1.5rem; + margin-bottom: 15px; + font-weight: 600; +} + +.expert-consultation-cta p { + color: #666; + margin-bottom: 25px; + font-size: 1.1rem; + line-height: 1.6; +} + +.expert-consultation-cta .btn { + font-size: 1.1rem; + padding: 15px 30px; + min-width: 200px; + font-weight: 600; +} + +/* Testimonials Grid */ +.testimonials { + padding: 80px 0; + background: #f8f9fa; +} + +.testimonials h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.testimonials-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 30px; + max-width: 1200px; + margin: 0 auto; +} + +.testimonial-card { + background: white; + padding: 40px; + border-radius: 16px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + border: 1px solid #f0f0f0; + position: relative; +} + +.testimonial-card::before { + content: '"'; + position: absolute; + top: -10px; + left: 30px; + font-size: 4rem; + color: #179e83; + font-family: serif; + line-height: 1; +} + +.testimonial-content p { + font-style: italic; + font-size: 1.1rem; + color: #444; + margin-bottom: 30px; + line-height: 1.6; +} + +.testimonial-author { + display: flex; + justify-content: space-between; + align-items: center; +} + +.author-info strong { + color: #1a1a1a; + font-weight: 600; + display: block; + margin-bottom: 5px; +} + +.author-info span { + color: #666; + font-size: 14px; +} + +.company-logo { + width: 60px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; +} + +.company-logo img { + max-width: 100%; + max-height: 100%; + filter: grayscale(100%); + opacity: 0.7; +} + +/* Social Proof Section */ +.social-proof { + padding: 80px 0; + background: white; +} + +.social-proof h2 { + text-align: center; + font-size: 2.5rem; + font-weight: 600; + margin-bottom: 60px; + color: #1a1a1a; +} + +.client-logos { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + gap: 30px; + margin: 40px 0 60px; + padding: 40px 0; + border-top: 1px solid #e1e5e9; + border-bottom: 1px solid #e1e5e9; +} + +.logo-item { + display: flex; + align-items: center; + justify-content: center; + padding: 20px; + background: #f8f9fa; + border-radius: 8px; + min-height: 80px; + color: #999; + font-weight: 500; + text-align: center; + transition: all 0.3s ease; +} + +.logo-item:hover { + background: white; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); + transform: translateY(-2px); +} + +/* Responsive Updates for New Components */ +@media (max-width: 768px) { + .case-study-content { + grid-template-columns: 1fr; + gap: 30px; + } + + .results-grid { + grid-template-columns: repeat(2, 1fr); + gap: 15px; + } + + .pricing-grid { + grid-template-columns: 1fr; + } + + .pricing-card.featured { + transform: none; + margin: 20px 0; + } + + .categories-grid { + grid-template-columns: repeat(2, 1fr); + gap: 20px; + } + + .contact-options { + grid-template-columns: 1fr; + gap: 20px; + } + + .contact-option { + justify-content: flex-start; + } + + .faq-grid { + grid-template-columns: 1fr; + } + + .page-hero h1, + .service-hero h1 { + font-size: 2.2rem; + } + + .breadcrumb ol { + flex-wrap: wrap; + } + + .client-logos { + grid-template-columns: repeat(2, 1fr); + gap: 20px; + } +} + +@media (max-width: 480px) { + .categories-grid { + grid-template-columns: 1fr; + } + + .results-grid { + grid-template-columns: 1fr; + } + + .case-study { + padding: 30px 20px; + } + + .service-hero .hero-stats, + .page-hero .hero-stats { + flex-direction: column; + gap: 20px; + } + + .hero-cta { + flex-direction: column; + align-items: center; + } + + .cta-buttons { + flex-direction: column; + align-items: center; + } + + .related-grid { + grid-template-columns: 1fr; + gap: 20px; + } + + .related-card { + padding: 25px 20px; + } + + .expert-consultation-cta { + padding: 30px 20px; + margin: 30px 0; + } + + .article-content pre { + margin: 20px -20px; + border-radius: 0; + border-left: none; + border-right: none; + } + + .article-content pre code { + padding: 15px 20px; + font-size: 13px; + } + + .article-content pre:hover::before { + top: 5px; + right: 5px; + font-size: 11px; + padding: 4px 8px; + } +} + +/* Technology Showcase Section */ +.technology-showcase { + padding: 80px 0; + background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); + position: relative; +} + +.technology-showcase::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: url('data:image/svg+xml,'); + opacity: 0.3; + pointer-events: none; +} + +.technology-showcase .container { + position: relative; + z-index: 1; +} + +.technology-showcase h2 { + text-align: center; + margin-bottom: 50px; + color: #1a202c; + font-size: 2.5rem; + font-weight: 700; + background: linear-gradient(135deg, #144784 0%, #179e83 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.tech-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 30px; + max-width: 1000px; + margin: 0 auto; +} + +.tech-card { + background: white; + padding: 40px 30px; + border-radius: 16px; + text-align: center; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + transition: all 0.3s ease; + border: 1px solid #e2e8f0; + position: relative; + overflow: hidden; +} + +.tech-card::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 4px; + background: linear-gradient(135deg, #144784 0%, #179e83 100%); + transform: scaleX(0); + transition: transform 0.3s ease; +} + +.tech-card:hover::before { + transform: scaleX(1); +} + +.tech-card:hover { + transform: translateY(-8px); + box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15); + border-color: #cbd5e0; +} + +.tech-icon { + font-size: 3rem; + margin-bottom: 20px; + display: block; + line-height: 1; + filter: grayscale(0.2); + transition: all 0.3s ease; +} + +.tech-card:hover .tech-icon { + transform: scale(1.1); + filter: grayscale(0); +} + +.tech-card h3 { + color: #1a202c; + font-size: 1.5rem; + font-weight: 600; + margin: 0 0 15px 0; + transition: color 0.3s ease; +} + +.tech-card:hover h3 { + color: #144784; +} + +.tech-card p { + color: #64748b; + font-size: 1rem; + line-height: 1.6; + margin: 0; + font-weight: 500; +} + +/* Responsive Design for Technology Showcase */ +@media (max-width: 768px) { + .technology-showcase { + padding: 60px 0; + } + + .technology-showcase h2 { + font-size: 2rem; + margin-bottom: 40px; + } + + .tech-grid { + grid-template-columns: 1fr; + gap: 20px; + } + + .tech-card { + padding: 30px 20px; + } + + .tech-icon { + font-size: 2.5rem; + margin-bottom: 15px; + } + + .tech-card h3 { + font-size: 1.3rem; + } +} + +/* Capabilities Grid (used in project-types.php) */ +.capabilities-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 40px; + margin: 40px 0; +} + +.capability-card { + background: white; + padding: 30px; + border-radius: 12px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + border-left: 4px solid #179e83; + transition: all 0.3s ease; + position: relative; + overflow: hidden; +} + +.capability-card:hover { + transform: translateY(-4px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12); + border-left-color: #144784; +} + +.capability-card h3 { + color: #1a202c; + font-size: 1.3rem; + font-weight: 600; + margin: 0 0 15px 0; + transition: color 0.3s ease; +} + +.capability-card:hover h3 { + color: #144784; +} + +.capability-card p { + color: #64748b; + line-height: 1.6; + margin: 0 0 20px 0; +} + +.capability-card ul { + list-style: none; + padding: 0; + margin: 0; +} + +.capability-card li { + color: #4a5568; + margin: 8px 0; + padding-left: 20px; + position: relative; + font-size: 0.95rem; +} + +.capability-card li::before { + content: '✓'; + position: absolute; + left: 0; + color: #179e83; + font-weight: bold; + font-size: 1rem; +} + +/* Technology badges/tags styling */ +.tech-tag { + display: inline-block; + background: linear-gradient(135deg, #144784 0%, #179e83 100%); + color: white; + padding: 6px 12px; + border-radius: 20px; + font-size: 0.9rem; + margin: 4px 8px 4px 0; + font-weight: 500; + transition: all 0.3s ease; +} + +.tech-tag:hover { + transform: scale(1.05); + box-shadow: 0 2px 8px rgba(20, 71, 132, 0.3); +} + +/* Responsive design for capabilities grid */ +@media (max-width: 768px) { + .capabilities-grid { + grid-template-columns: 1fr; + gap: 20px; + margin: 30px 0; + } + + .capability-card { + padding: 25px 20px; + } + + .capability-card h3 { + font-size: 1.2rem; + } +} + +/* Fix for navbar overlap on content pages */ +main { + padding-top: 90px; /* Add padding to account for fixed navbar (70px + 20px buffer) */ +} + +/* Specific fix for legal content pages */ +.legal-content { + padding-top: 120px !important; /* Override inline styles for legal pages */ +} + +/* Also ensure any page sections that might be affected have proper spacing */ +.page-content { + 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 */ +} \ No newline at end of file diff --git a/assets/js/main.js b/assets/js/main.js index 2ce3dca..58fd5c3 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -651,7 +651,7 @@ document.addEventListener('DOMContentLoaded', function() { return; } - function renderPage(page) { + function renderPage(page, shouldScroll = false) { // Hide all articles allArticles.forEach(article => { article.style.display = 'none'; @@ -682,11 +682,13 @@ document.addEventListener('DOMContentLoaded', function() { } window.history.replaceState({}, '', newUrl); - // Scroll to articles section - articlesGrid.scrollIntoView({ - behavior: 'smooth', - block: 'start' - }); + // Only scroll to articles section when navigating between pages + if (shouldScroll) { + articlesGrid.scrollIntoView({ + behavior: 'smooth', + block: 'start' + }); + } } // Event listeners @@ -694,7 +696,7 @@ document.addEventListener('DOMContentLoaded', function() { e.preventDefault(); if (currentPage > 1) { currentPage--; - renderPage(currentPage); + renderPage(currentPage, true); } }); @@ -702,12 +704,12 @@ document.addEventListener('DOMContentLoaded', function() { e.preventDefault(); if (currentPage < totalPages) { currentPage++; - renderPage(currentPage); + renderPage(currentPage, true); } }); - // Initialize first page - renderPage(currentPage); + // Initialize first page (don't scroll on initial load) + renderPage(currentPage, false); // Add CSS animation for article transitions const style = document.createElement('style'); diff --git a/blog/articles/business-intelligence-dashboard-design.php b/blog/articles/business-intelligence-dashboard-design.php index 1e3ca95..0a7d9d5 100644 --- a/blog/articles/business-intelligence-dashboard-design.php +++ b/blog/articles/business-intelligence-dashboard-design.php @@ -127,11 +127,11 @@ $read_time = 12; @@ -1283,19 +1283,20 @@ $read_time = 12; diff --git a/blog/articles/cloud-native-scraping-architecture.php b/blog/articles/cloud-native-scraping-architecture.php index 9077368..c980785 100644 --- a/blog/articles/cloud-native-scraping-architecture.php +++ b/blog/articles/cloud-native-scraping-architecture.php @@ -109,11 +109,11 @@ $read_time = 11; @@ -507,7 +507,7 @@ class ProxyManager:
  • Services
  • Blog
  • Case Studies
  • -
  • About
  • +
  • About
  • Contact
  • @@ -515,10 +515,10 @@ class ProxyManager: diff --git a/blog/articles/competitive-intelligence-roi-metrics.php b/blog/articles/competitive-intelligence-roi-metrics.php index 26bbebf..d35dcf2 100644 --- a/blog/articles/competitive-intelligence-roi-metrics.php +++ b/blog/articles/competitive-intelligence-roi-metrics.php @@ -127,11 +127,11 @@ $read_time = 8; @@ -809,19 +809,20 @@ $read_time = 8; diff --git a/blog/articles/data-automation-strategies-uk-businesses.php b/blog/articles/data-automation-strategies-uk-businesses.php index 66d7238..b07b7ec 100644 --- a/blog/articles/data-automation-strategies-uk-businesses.php +++ b/blog/articles/data-automation-strategies-uk-businesses.php @@ -107,11 +107,11 @@ $og_image = "https://ukdataservices.co.uk/assets/images/icon-automation.svg"; diff --git a/blog/articles/data-quality-validation-pipelines.php b/blog/articles/data-quality-validation-pipelines.php index 57441e1..24c5eba 100644 --- a/blog/articles/data-quality-validation-pipelines.php +++ b/blog/articles/data-quality-validation-pipelines.php @@ -109,11 +109,11 @@ $read_time = 9; @@ -445,7 +445,7 @@ $read_time = 9;
  • Services
  • Blog
  • Case Studies
  • -
  • About
  • +
  • About
  • Contact
  • @@ -453,10 +453,10 @@ $read_time = 9; diff --git a/blog/articles/ecommerce-trends-uk-2025.php b/blog/articles/ecommerce-trends-uk-2025.php index 7f82d3c..aff40eb 100644 --- a/blog/articles/ecommerce-trends-uk-2025.php +++ b/blog/articles/ecommerce-trends-uk-2025.php @@ -103,11 +103,11 @@ $breadcrumbs = [ @@ -426,7 +426,7 @@ $read_time = 7;
  • Services
  • Blog
  • Case Studies
  • -
  • About
  • +
  • About
  • Contact
  • @@ -434,10 +434,10 @@ $read_time = 7; diff --git a/blog/articles/gdpr-data-minimisation-practices.php b/blog/articles/gdpr-data-minimisation-practices.php index e88aed5..8032cbc 100644 --- a/blog/articles/gdpr-data-minimisation-practices.php +++ b/blog/articles/gdpr-data-minimisation-practices.php @@ -109,11 +109,11 @@ $read_time = 6; @@ -457,7 +457,7 @@ END;
  • Services
  • Blog
  • Case Studies
  • -
  • About
  • +
  • About
  • Contact
  • @@ -465,10 +465,10 @@ END; diff --git a/blog/articles/handling-captchas-scraping.php b/blog/articles/handling-captchas-scraping.php index 6492fb6..17966ca 100644 --- a/blog/articles/handling-captchas-scraping.php +++ b/blog/articles/handling-captchas-scraping.php @@ -109,11 +109,11 @@ $read_time = 8; @@ -676,7 +676,7 @@ def scrape_with_captcha_logging(url):
  • Services
  • Blog
  • Case Studies
  • -
  • About
  • +
  • About
  • Contact
  • @@ -684,10 +684,10 @@ def scrape_with_captcha_logging(url): diff --git a/blog/articles/javascript-heavy-sites-scraping.php b/blog/articles/javascript-heavy-sites-scraping.php index 70af285..99f9a43 100644 --- a/blog/articles/javascript-heavy-sites-scraping.php +++ b/blog/articles/javascript-heavy-sites-scraping.php @@ -124,11 +124,11 @@ $read_time = 8; @@ -522,19 +522,20 @@ await page.goto(url); diff --git a/blog/articles/predictive-analytics-customer-churn.php b/blog/articles/predictive-analytics-customer-churn.php index 6531a39..ae49722 100644 --- a/blog/articles/predictive-analytics-customer-churn.php +++ b/blog/articles/predictive-analytics-customer-churn.php @@ -127,11 +127,11 @@ $read_time = 14; @@ -1650,19 +1650,20 @@ $read_time = 14; diff --git a/blog/articles/python-scrapy-enterprise-guide.php b/blog/articles/python-scrapy-enterprise-guide.php index 993833c..bd3479f 100644 --- a/blog/articles/python-scrapy-enterprise-guide.php +++ b/blog/articles/python-scrapy-enterprise-guide.php @@ -182,11 +182,11 @@ $read_time = 12; @@ -846,7 +846,7 @@ spec:
  • Services
  • Blog
  • Case Studies
  • -
  • About
  • +
  • About
  • Contact
  • @@ -854,10 +854,10 @@ spec: diff --git a/blog/articles/real-time-analytics-streaming.php b/blog/articles/real-time-analytics-streaming.php index 958c19f..c6c0f45 100644 --- a/blog/articles/real-time-analytics-streaming.php +++ b/blog/articles/real-time-analytics-streaming.php @@ -43,11 +43,11 @@ $read_time = 11; @@ -334,10 +334,10 @@ $read_time = 10; diff --git a/blog/articles/selenium-vs-playwright-comparison.php b/blog/articles/selenium-vs-playwright-comparison.php index d6da9b1..6afb556 100644 --- a/blog/articles/selenium-vs-playwright-comparison.php +++ b/blog/articles/selenium-vs-playwright-comparison.php @@ -109,11 +109,11 @@ $read_time = 9; @@ -497,7 +497,7 @@ run_scraper()
  • Services
  • Blog
  • Case Studies
  • -
  • About
  • +
  • About
  • Contact
  • @@ -505,10 +505,10 @@ run_scraper() diff --git a/blog/articles/sql-analytics-advanced-techniques.php b/blog/articles/sql-analytics-advanced-techniques.php index b44c795..5659e02 100644 --- a/blog/articles/sql-analytics-advanced-techniques.php +++ b/blog/articles/sql-analytics-advanced-techniques.php @@ -127,11 +127,11 @@ $read_time = 16; @@ -1522,19 +1522,20 @@ ORDER BY predicted_clv DESC; diff --git a/blog/articles/uk-cookie-law-compliance.php b/blog/articles/uk-cookie-law-compliance.php index 53c09b7..c2195fc 100644 --- a/blog/articles/uk-cookie-law-compliance.php +++ b/blog/articles/uk-cookie-law-compliance.php @@ -45,11 +45,11 @@ $read_time = 8; @@ -429,7 +429,7 @@ $read_time = 8;
  • Services
  • Blog
  • Case Studies
  • -
  • About
  • +
  • About
  • Contact
  • @@ -437,10 +437,10 @@ $read_time = 8; diff --git a/blog/articles/web-scraping-compliance-uk-guide.php b/blog/articles/web-scraping-compliance-uk-guide.php index b39d68f..fbb86b9 100644 --- a/blog/articles/web-scraping-compliance-uk-guide.php +++ b/blog/articles/web-scraping-compliance-uk-guide.php @@ -314,11 +314,11 @@ $read_time = 12; @@ -570,7 +570,7 @@ $read_time = 12;

    Need Professional Web Scraping Services?

    Our expert team ensures full legal compliance while delivering the data insights your business needs. Get a free consultation on your next data project.

    @@ -605,19 +605,20 @@ $read_time = 12; diff --git a/blog/articles/web-scraping-rate-limiting.php b/blog/articles/web-scraping-rate-limiting.php index 1397aa1..ff84784 100644 --- a/blog/articles/web-scraping-rate-limiting.php +++ b/blog/articles/web-scraping-rate-limiting.php @@ -109,11 +109,11 @@ $read_time = 9; @@ -834,7 +834,7 @@ monitor.print_report()
  • Services
  • Blog
  • Case Studies
  • -
  • About
  • +
  • About
  • Contact
  • @@ -842,10 +842,10 @@ monitor.print_report() diff --git a/blog/categories/business-intelligence.php b/blog/categories/business-intelligence.php index 537f352..7476bc1 100644 --- a/blog/categories/business-intelligence.php +++ b/blog/categories/business-intelligence.php @@ -343,6 +343,7 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog/business-intelligen
  • Case Studies
  • About Us
  • Project Types
  • +
  • FAQ
  • Get Quote
  • diff --git a/blog/categories/case-studies.php b/blog/categories/case-studies.php index 3d8ad0c..b6c4dae 100644 --- a/blog/categories/case-studies.php +++ b/blog/categories/case-studies.php @@ -305,6 +305,7 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog/case-studies-catego
  • Case Studies
  • About Us
  • Project Types
  • +
  • FAQ
  • Get Quote
  • diff --git a/blog/categories/compliance.php b/blog/categories/compliance.php index 8c9d61b..18bffaa 100644 --- a/blog/categories/compliance.php +++ b/blog/categories/compliance.php @@ -276,6 +276,7 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog/compliance-category
  • Case Studies
  • About Us
  • Project Types
  • +
  • FAQ
  • Get Quote
  • diff --git a/blog/categories/data-analytics.php b/blog/categories/data-analytics.php index f2d74b2..ba5bae9 100644 --- a/blog/categories/data-analytics.php +++ b/blog/categories/data-analytics.php @@ -289,6 +289,7 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog/data-analytics-cate
  • Case Studies
  • About Us
  • Project Types
  • +
  • FAQ
  • Get Quote
  • diff --git a/blog/categories/industry-insights.php b/blog/categories/industry-insights.php index 452f1c2..6fd9cce 100644 --- a/blog/categories/industry-insights.php +++ b/blog/categories/industry-insights.php @@ -276,6 +276,7 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog/industry-insights-c
  • Case Studies
  • About Us
  • Project Types
  • +
  • FAQ
  • Get Quote
  • diff --git a/blog/categories/technology.php b/blog/categories/technology.php index 12b88de..670f9be 100644 --- a/blog/categories/technology.php +++ b/blog/categories/technology.php @@ -305,6 +305,7 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog/technology-category
  • Case Studies
  • About Us
  • Project Types
  • +
  • FAQ
  • Get Quote
  • diff --git a/blog/categories/web-scraping.php b/blog/categories/web-scraping.php index 79c73db..098e8e2 100644 --- a/blog/categories/web-scraping.php +++ b/blog/categories/web-scraping.php @@ -276,6 +276,7 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog/web-scraping-catego
  • Case Studies
  • About Us
  • Project Types
  • +
  • FAQ
  • Get Quote
  • diff --git a/blog/index.php b/blog/index.php index 33600c3..0a4df19 100644 --- a/blog/index.php +++ b/blog/index.php @@ -101,11 +101,11 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog-og-image.png"; @@ -470,19 +472,20 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog-og-image.png"; @@ -508,27 +511,7 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog-og-image.png"; + + + + \ No newline at end of file diff --git a/cookie-policy.php b/cookie-policy.php index 5bee137..29a4793 100644 --- a/cookie-policy.php +++ b/cookie-policy.php @@ -8,7 +8,7 @@ header('Referrer-Policy: strict-origin-when-cross-origin'); $page_title = "Cookie Policy | UK Data Services - Website Cookie Information"; $page_description = "Learn about how UK Data Services uses cookies on our website to improve user experience and comply with UK privacy regulations."; -$canonical_url = "https://ukdataservices.co.uk/cookie-policy.php"; +$canonical_url = "https://ukdataservices.co.uk/cookie-policy"; ?> @@ -115,10 +115,11 @@ $canonical_url = "https://ukdataservices.co.uk/cookie-policy.php"; diff --git a/db_backup_250608_200502.sql b/db_backup_250608_205114.sql similarity index 99% rename from db_backup_250608_200502.sql rename to db_backup_250608_205114.sql index 2cbfeb6..605be6f 100644 --- a/db_backup_250608_200502.sql +++ b/db_backup_250608_205114.sql @@ -697,4 +697,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2025-06-08 20:05:02 +-- Dump completed on 2025-06-08 20:51:14 diff --git a/faq-enhanced.php b/faq-enhanced.php index 05b78dd..13dd319 100644 --- a/faq-enhanced.php +++ b/faq-enhanced.php @@ -87,12 +87,12 @@ $keywords = "UK data services FAQ, web scraping questions, data cleaning help, b diff --git a/faq.php b/faq.php index ac61cb6..db5716a 100644 --- a/faq.php +++ b/faq.php @@ -8,7 +8,7 @@ header('Referrer-Policy: strict-origin-when-cross-origin'); $page_title = "Frequently Asked Questions | UK Data Services - Web Scraping & Data Analytics FAQ"; $page_description = "Find answers to common questions about UK Data Services' web scraping, data extraction, and business intelligence solutions. Expert guidance on data projects."; -$canonical_url = "https://ukdataservices.co.uk/faq.php"; +$canonical_url = "https://ukdataservices.co.uk/faq"; ?> @@ -34,7 +34,7 @@ $canonical_url = "https://ukdataservices.co.uk/faq.php"; { "@context": "https://schema.org", "@type": "FAQPage", - "@id": "https://ukdataservices.co.uk/faq.php#faqpage", + "@id": "https://ukdataservices.co.uk/faq#faqpage", "name": "UK Data Services FAQ - Web Scraping & Data Analytics", "description": "Comprehensive answers to frequently asked questions about web scraping, data extraction, pricing, legal compliance, and our services.", "mainEntity": [ @@ -303,10 +303,11 @@ $canonical_url = "https://ukdataservices.co.uk/faq.php"; @@ -627,7 +628,7 @@ $canonical_url = "https://ukdataservices.co.uk/faq.php";

    Still Have Questions?

    Our data experts are ready to help. Get in touch for personalised advice on your data project.

    - Request Quote + Request Quote Contact Us
    @@ -658,21 +659,21 @@ $canonical_url = "https://ukdataservices.co.uk/faq.php"; diff --git a/gdpr-compliance.php b/gdpr-compliance.php index fa1f50a..d79fcce 100644 --- a/gdpr-compliance.php +++ b/gdpr-compliance.php @@ -8,7 +8,7 @@ header('Referrer-Policy: strict-origin-when-cross-origin'); $page_title = "GDPR Compliance | UK Data Services - Data Protection Excellence"; $page_description = "Learn about UK Data Services' comprehensive GDPR compliance framework and commitment to protecting personal data in all our web scraping and analytics services."; -$canonical_url = "https://ukdataservices.co.uk/gdpr-compliance.php"; +$canonical_url = "https://ukdataservices.co.uk/gdpr-compliance"; ?> @@ -129,10 +129,11 @@ $canonical_url = "https://ukdataservices.co.uk/gdpr-compliance.php"; diff --git a/index.php b/index.php index 1a27626..a446e68 100644 --- a/index.php +++ b/index.php @@ -430,11 +430,11 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
    @@ -825,7 +825,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo Expert Consultancy

    Dedicated Expert Consultancy

    -

    Continuous support from chartered data professionals and certified engineers, providing strategic guidance and technical expertise. Meet our experienced team of data specialists.

    +

    Continuous support from chartered data professionals and certified engineers, providing strategic guidance and technical expertise. Meet our experienced team of data specialists.

    @@ -945,19 +945,20 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
    diff --git a/privacy-policy.php b/privacy-policy.php index dee754a..e9ccc85 100644 --- a/privacy-policy.php +++ b/privacy-policy.php @@ -8,7 +8,7 @@ header('Referrer-Policy: strict-origin-when-cross-origin'); $page_title = "Privacy Policy | UK Data Services - GDPR Compliant Data Protection"; $page_description = "Our comprehensive privacy policy explaining how UK Data Services protects your personal data in compliance with GDPR and UK data protection laws."; -$canonical_url = "https://ukdataservices.co.uk/privacy-policy.php"; +$canonical_url = "https://ukdataservices.co.uk/privacy-policy"; ?> @@ -93,10 +93,11 @@ $canonical_url = "https://ukdataservices.co.uk/privacy-policy.php"; diff --git a/project-types.php b/project-types.php index 253a64d..73d624e 100644 --- a/project-types.php +++ b/project-types.php @@ -8,7 +8,7 @@ header('Referrer-Policy: strict-origin-when-cross-origin'); $page_title = "Project Types | UK Data Services - Development Portfolio"; $page_description = "Discover the diverse range of C# development projects we've undertaken, from web scraping frameworks to business intelligence systems and environmental data processing."; -$canonical_url = "https://ukdataservices.co.uk/project-types.php"; +$canonical_url = "https://ukdataservices.co.uk/project-types"; ?> @@ -34,7 +34,7 @@ $canonical_url = "https://ukdataservices.co.uk/project-types.php"; { "@context": "https://schema.org", "@type": "Article", - "@id": "https://ukdataservices.co.uk/project-types.php#article", + "@id": "https://ukdataservices.co.uk/project-types#article", "headline": "Types of C# Development Projects We Have Undertaken", "description": "Comprehensive overview of diverse C# applications, from web scraping frameworks to enterprise automation systems delivered by UK Data Services.", "author": { @@ -46,10 +46,10 @@ $canonical_url = "https://ukdataservices.co.uk/project-types.php"; "datePublished": "2024-01-15", "dateModified": "2024-06-07", "image": "https://ukdataservices.co.uk/assets/images/ukds-main-logo.png", - "url": "https://ukdataservices.co.uk/project-types.php", + "url": "https://ukdataservices.co.uk/project-types", "mainEntityOfPage": { "@type": "WebPage", - "@id": "https://ukdataservices.co.uk/project-types.php#webpage" + "@id": "https://ukdataservices.co.uk/project-types#webpage" }, "about": [ { @@ -285,10 +285,11 @@ $canonical_url = "https://ukdataservices.co.uk/project-types.php"; @@ -814,20 +815,21 @@ $canonical_url = "https://ukdataservices.co.uk/project-types.php"; diff --git a/quote.php b/quote.php index 5928337..7545723 100644 --- a/quote.php +++ b/quote.php @@ -8,7 +8,7 @@ header('Referrer-Policy: strict-origin-when-cross-origin'); $page_title = "Get a Quote | UK Data Services - Professional Data Solutions"; $page_description = "Get a free, no-obligation quote for your data project. Tell us your requirements and we'll provide a detailed proposal within 24 hours."; -$canonical_url = "https://ukdataservices.co.uk/quote.php"; +$canonical_url = "https://ukdataservices.co.uk/quote"; ?> @@ -44,8 +44,8 @@ $canonical_url = "https://ukdataservices.co.uk/quote.php"; { "@context": "https://schema.org", "@type": "WebPage", - "@id": "https://ukdataservices.co.uk/quote.php#webpage", - "url": "https://ukdataservices.co.uk/quote.php", + "@id": "https://ukdataservices.co.uk/quote#webpage", + "url": "https://ukdataservices.co.uk/quote", "name": "Get Free Quote - UK Data Services", "description": "Request a free, no-obligation quote for professional web scraping and data extraction services. Get detailed proposal within 24 hours.", "mainEntity": { @@ -355,7 +355,7 @@ $canonical_url = "https://ukdataservices.co.uk/quote.php"; "price": "0", "priceCurrency": "GBP", "availability": "https://schema.org/InStock", - "url": "https://ukdataservices.co.uk/quote.php" + "url": "https://ukdataservices.co.uk/quote" }, "performer": { "@type": "Organization", @@ -383,10 +383,11 @@ $canonical_url = "https://ukdataservices.co.uk/quote.php"; diff --git a/robots.txt b/robots.txt index a46bbcd..c44df80 100644 --- a/robots.txt +++ b/robots.txt @@ -17,9 +17,11 @@ Disallow: /*.inc$ Disallow: /contact-handler.php Disallow: /quote-handler.php -# Sitemap location +# Sitemap locations +Sitemap: https://ukdataservices.co.uk/sitemap-index.xml Sitemap: https://ukdataservices.co.uk/sitemap.xml -Sitemap: https://ukdataservices.co.uk/sitemap.php +Sitemap: https://ukdataservices.co.uk/sitemap-blog.xml +Sitemap: https://ukdataservices.co.uk/sitemap-services.xml # Crawl delay to be respectful Crawl-delay: 1 \ No newline at end of file diff --git a/sitemap-blog.xml b/sitemap-blog.xml index a7e0cd1..1b38e29 100644 --- a/sitemap-blog.xml +++ b/sitemap-blog.xml @@ -7,51 +7,59 @@ https://ukdataservices.co.uk/blog/ - 2025-01-08 + 2025-06-08 weekly - 0.8 + 0.9 + + + + + https://ukdataservices.co.uk/blog/search.php + 2025-06-08 + weekly + 0.6 https://ukdataservices.co.uk/blog/categories/web-scraping.php - 2025-01-08 + 2025-06-08 weekly 0.7 https://ukdataservices.co.uk/blog/categories/data-analytics.php - 2025-01-08 + 2025-06-08 weekly 0.7 https://ukdataservices.co.uk/blog/categories/business-intelligence.php - 2025-01-08 + 2025-06-08 weekly 0.7 https://ukdataservices.co.uk/blog/categories/compliance.php - 2025-01-08 + 2025-06-08 weekly 0.7 https://ukdataservices.co.uk/blog/categories/technology.php - 2025-01-08 + 2025-06-08 weekly 0.7 https://ukdataservices.co.uk/blog/categories/case-studies.php - 2025-01-08 + 2025-06-08 weekly 0.7 https://ukdataservices.co.uk/blog/categories/industry-insights.php - 2025-01-08 + 2025-06-08 weekly 0.7 @@ -59,211 +67,211 @@ https://ukdataservices.co.uk/blog/articles/web-scraping-compliance-uk-guide.php - 2025-01-08 + 2025-06-08 monthly 0.9 https://ukdataservices.co.uk/blog/articles/ai-powered-data-extraction.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/business-intelligence-dashboard-design.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/cloud-native-scraping-architecture.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/competitive-intelligence-roi-metrics.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/data-automation-strategies-uk-businesses.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/data-protection-impact-assessments.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/data-quality-validation-pipelines.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/data-subject-rights-management.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/database-optimization-big-data.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/ecommerce-trends-uk-2025.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/financial-services-data-transformation.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/fintech-market-analysis-uk.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/gdpr-data-minimisation-practices.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/handling-captchas-scraping.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/healthcare-research-data-collection.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/international-data-transfers-uk.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/javascript-heavy-sites-scraping.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/kubernetes-scraping-deployment.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/manufacturing-data-transformation.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/manufacturing-supply-chain-optimization.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/media-content-aggregation-platform.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/predictive-analytics-customer-churn.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/property-data-aggregation-success.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/python-data-pipeline-tools-2025.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/python-scrapy-enterprise-guide.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/real-time-analytics-streaming-data.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/real-time-analytics-streaming.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/retail-competitor-monitoring-case.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/retail-price-monitoring-strategies.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/selenium-vs-playwright-comparison.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/sql-analytics-advanced-techniques.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/uk-cookie-law-compliance.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/uk-property-market-data-trends.php - 2025-01-08 + 2025-06-08 monthly 0.8 https://ukdataservices.co.uk/blog/articles/web-scraping-rate-limiting.php - 2025-01-08 + 2025-06-08 monthly 0.8 diff --git a/sitemap-index.xml b/sitemap-index.xml index bb4c7b7..3461219 100644 --- a/sitemap-index.xml +++ b/sitemap-index.xml @@ -4,19 +4,19 @@ https://ukdataservices.co.uk/sitemap.xml - 2025-01-08T17:53:00+00:00 + 2025-06-08T20:30:00+00:00 https://ukdataservices.co.uk/sitemap-blog.xml - 2025-01-08T17:53:00+00:00 + 2025-06-08T20:30:00+00:00 https://ukdataservices.co.uk/sitemap-services.xml - 2025-01-08T17:53:00+00:00 + 2025-06-08T20:30:00+00:00 \ No newline at end of file diff --git a/sitemap-services.xml b/sitemap-services.xml index a339196..67c6482 100644 --- a/sitemap-services.xml +++ b/sitemap-services.xml @@ -6,7 +6,7 @@ https://ukdataservices.co.uk/#services - 2025-01-08 + 2025-06-08 weekly 0.9 @@ -14,7 +14,7 @@ https://ukdataservices.co.uk/services/data-cleaning.php - 2025-01-08 + 2025-06-08 monthly 0.8 @@ -27,7 +27,7 @@ https://ukdataservices.co.uk/quote.php - 2025-01-08 + 2025-06-08 weekly 0.8 @@ -35,7 +35,7 @@ https://ukdataservices.co.uk/about.php - 2025-01-08 + 2025-06-08 monthly 0.7 @@ -43,7 +43,7 @@ https://ukdataservices.co.uk/case-studies/ - 2025-01-08 + 2025-06-08 monthly 0.7 @@ -51,7 +51,7 @@ https://ukdataservices.co.uk/project-types.php - 2025-01-08 + 2025-06-08 monthly 0.6 @@ -59,13 +59,13 @@ https://ukdataservices.co.uk/faq-enhanced.php - 2025-01-08 + 2025-06-08 monthly 0.6 https://ukdataservices.co.uk/faq.php - 2025-01-08 + 2025-06-08 monthly 0.5 @@ -73,25 +73,25 @@ https://ukdataservices.co.uk/privacy-policy.php - 2025-01-08 + 2025-06-08 yearly 0.4 https://ukdataservices.co.uk/terms-of-service.php - 2025-01-08 + 2025-06-08 yearly 0.4 https://ukdataservices.co.uk/cookie-policy.php - 2025-01-08 + 2025-06-08 yearly 0.4 https://ukdataservices.co.uk/gdpr-compliance.php - 2025-01-08 + 2025-06-08 yearly 0.4 diff --git a/sitemap.xml b/sitemap.xml index 19b1db6..2c01c88 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -4,7 +4,7 @@ https://ukdataservices.co.uk/ - 2025-06-08T14:30:00+00:00 + 2025-06-08T20:30:00+00:00 weekly 1.0 @@ -38,11 +38,18 @@ https://ukdataservices.co.uk/blog/ - 2025-06-08T14:30:00+00:00 + 2025-06-08T20:30:00+00:00 daily 0.9 + + https://ukdataservices.co.uk/blog/search.php + 2025-06-08T20:30:00+00:00 + weekly + 0.6 + + https://ukdataservices.co.uk/blog/categories/web-scraping.php diff --git a/terms-of-service.php b/terms-of-service.php index 1f8da7c..0169d55 100644 --- a/terms-of-service.php +++ b/terms-of-service.php @@ -8,7 +8,7 @@ header('Referrer-Policy: strict-origin-when-cross-origin'); $page_title = "Terms of Service | UK Data Services - Professional Data Solutions"; $page_description = "Our terms of service outlining the legal framework for using UK Data Services' professional web scraping and data analytics solutions."; -$canonical_url = "https://ukdataservices.co.uk/terms-of-service.php"; +$canonical_url = "https://ukdataservices.co.uk/terms-of-service"; ?> @@ -93,10 +93,11 @@ $canonical_url = "https://ukdataservices.co.uk/terms-of-service.php";