/* Reset & Base Normalize */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body, h1, h2, h3, h4, h5, h6, p, ul, ol, dl, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; color: inherit; background: transparent; border: none; outline: none; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid #2E8C7F; outline-offset: 2px; }

/* Theme Variables (with fallbacks in each rule) */
:root {
  --brand-primary: #153E6F; /* deep steel blue */
  --brand-secondary: #2E8C7F; /* teal */
  --brand-accent: #F4F7FB; /* light */
  --ink-900: #0F1418; /* base bg */
  --ink-850: #12181D; /* section bg */
  --ink-800: #141B21;
  --ink-700: #1A232B;
  --metal-600: #28313A; /* borders */
  --metal-500: #39424B; /* hover borders */
  --metal-400: #4A5561; /* muted borders */
  --text-strong: #E6EDF3; /* primary text */
  --text-muted: #A6B3BE; /* secondary text */
  --success: #2E8C7F;
  --warning: #C48F2B;
  --danger: #B84A4A;
  --shadow-1: 0 6px 18px rgba(0,0,0,0.28);
  --shadow-2: 0 10px 30px rgba(0,0,0,0.35);
  --radius-s: 6px; --radius-m: 10px; --radius-l: 14px;
  --space-8: 8px; --space-12: 12px; --space-16: 16px; --space-20: 20px; --space-24: 24px; --space-32: 32px; --space-40: 40px; --space-48: 48px; --space-60: 60px;
}

/* Base Typography & Body */
body {
  background: var(--ink-900);
  color: var(--text-strong);
  font-family: Arial, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, sans-serif;
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 { font-family: Georgia, 'Times New Roman', serif; color: var(--text-strong); line-height: 1.2; }
h1 { font-size: 36px; letter-spacing: 0.2px; }
h2 { font-size: 28px; margin-bottom: var(--space-20); }
h3 { font-size: 22px; }
h4 { font-size: 18px; }
p, li, dd, dt, td { font-size: 16px; color: var(--text-strong); }
.subheadline { color: var(--text-muted); font-size: 18px; margin-top: var(--space-12); }

/* Global Layout Helpers (Flex-only) */
.container {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 0 var(--space-20);
}
.content-wrapper {
  display: flex; flex-direction: column; gap: var(--space-20);
  width: 100%; max-width: 1200px;
}

/* Mandatory Spacing & Alignment Patterns */
.section { margin-bottom: 60px; padding: 40px 20px; }
.card-container { display: flex; flex-wrap: wrap; gap: 24px; }
.card { margin-bottom: 20px; position: relative; }
.content-grid { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; }
.text-image-section { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.testimonial-card { display: flex; align-items: center; gap: 20px; padding: 20px; }
.feature-item { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }

/* Header */
header { background: var(--ink-850); border-bottom: 1px solid var(--metal-600); position: sticky; top: 0; z-index: 1000; }
.header-top {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-16);
  padding: var(--space-16) 0;
}
.header-top img { width: 160px; height: auto; }

/* Desktop Navigation */
.main-nav { display: none; align-items: center; gap: var(--space-20); }
.main-nav a {
  color: var(--text-strong);
  padding: 10px 12px; border: 1px solid transparent; border-radius: var(--radius-s);
  transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}
.main-nav a:hover { color: var(--brand-accent); border-color: var(--metal-500); background: rgba(21,62,111,0.1); }

/* Calls to Action */
.cta-primary, .cta-secondary {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px; padding: 12px 18px; border-radius: var(--radius-m);
  transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
  border: 1px solid var(--metal-600);
}
.cta-primary {
  background: var(--brand-secondary);
  color: #0E1418;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), var(--shadow-1);
}
.cta-primary:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), var(--shadow-2); }
.cta-secondary {
  background: transparent; color: var(--brand-accent);
  border-color: var(--metal-500);
}
.cta-secondary:hover { background: rgba(46,140,127,0.12); border-color: var(--brand-secondary); }
.cta-secondary img { width: 18px; height: 18px; }

/* Mobile Navigation */
.mobile-menu-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; margin: 8px 12px; border-radius: 8px;
  color: var(--text-strong); background: rgba(255,255,255,0.04);
  border: 1px solid var(--metal-600);
}
.mobile-menu-toggle:hover { background: rgba(255,255,255,0.08); }

.mobile-menu {
  position: fixed; top: 0; right: 0; width: 100vw; height: 100vh;
  background: var(--ink-850);
  border-left: 1px solid var(--metal-600);
  transform: translateX(100%);
  transition: transform .35s ease;
  z-index: 1200;
  display: flex; flex-direction: column; gap: var(--space-20); padding: var(--space-20);
}
.mobile-menu.open, .mobile-menu.active, .mobile-menu.is-open { transform: translateX(0); }
.mobile-menu-close {
  align-self: flex-end; width: 44px; height: 44px; border-radius: 8px;
  color: var(--text-strong); background: rgba(255,255,255,0.05);
  border: 1px solid var(--metal-600);
}
.mobile-nav { display: flex; flex-direction: column; gap: 8px; }
.mobile-nav a {
  display: flex; align-items: center; padding: 14px 12px; border: 1px solid var(--metal-600);
  border-radius: var(--radius-s); background: rgba(255,255,255,0.02);
}
.mobile-nav a:hover { background: rgba(21,62,111,0.15); border-color: var(--brand-primary); }

/* Hide/Show Nav by viewport */
@media (min-width: 992px) {
  .mobile-menu-toggle { display: none; }
  .main-nav { display: flex; }
}

/* Hero */
.hero { background: var(--ink-800); border-bottom: 1px solid var(--metal-600); }
.hero .content-wrapper { padding: var(--space-40) 0; }
.hero h1 { font-size: 40px; }
.hero .cta-secondary img { filter: brightness(1.2); }
.trust-badges { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-16); color: var(--text-muted); }
.trust-badges img { width: 18px; height: 18px; margin-right: 6px; }

/* Breadcrumb */
.breadcrumb { display: flex; align-items: center; gap: 8px; color: var(--text-muted); font-size: 14px; }

/* Shared Card Style */
.service-card, .package-card, .topic-card, .mini-case-card, .advisor-profile, .legal-block, .testimonial-card, .cta-banner, .video-testimonial-placeholder {
  background: var(--ink-700);
  border: 1px solid var(--metal-600);
  border-radius: var(--radius-m);
  padding: var(--space-20);
  box-shadow: var(--shadow-1);
}
/* Testimonials must be light for contrast */
.testimonial-card { background: var(--brand-accent); color: #0F1418; border-color: #D6DFE8; box-shadow: 0 6px 18px rgba(18,24,29,0.18); }
.testimonial-card span { color: #33414D; font-weight: 600; }
.rating-summary { display: flex; align-items: center; gap: 12px; background: var(--brand-accent); color: #0F1418; border: 1px solid #D6DFE8; border-radius: var(--radius-m); padding: 12px 16px; }
.rating-summary img { width: 20px; height: 20px; }

/* Feature Grid */
.feature-grid, .service-overview-grid, .service-categories, .deliverables-grid, .packages-grid, .domains-grid, .differentiators-grid, .team-list, .case-study-teasers, .topic-specific-testimonials, .checklist-cards, .featured-articles, .pricing-options {
  display: flex; flex-wrap: wrap; gap: var(--space-24);
}
.feature, .service-card, .package-card, .topic-card, .mini-case-card, .advisor-profile, .featured-articles article {
  display: flex; flex-direction: column; gap: var(--space-12);
  flex: 1 1 260px; min-width: 260px;
}
.feature img, .differentiators-grid img { width: 28px; height: 28px; }

/* USP list, lists and bullets */
.usp-list, .quality-assurance-points, .addons-list ul, .jurisdictions-list ul, .typical-cases-list, .what-to-expect {
  display: flex; flex-direction: column; gap: 8px; padding-left: 0;
}
.usp-list li, .quality-assurance-points li, .addons-list li, .jurisdictions-list li, .typical-cases-list li, .what-to-expect li {
  display: flex; align-items: flex-start; gap: 10px; color: var(--text-strong);
  padding-left: 14px; position: relative;
}
.usp-list li::before, .quality-assurance-points li::before, .addons-list li::before, .jurisdictions-list li::before, .typical-cases-list li::before, .what-to-expect li::before {
  content: ""; width: 6px; height: 6px; border-radius: 2px; background: var(--brand-secondary);
  position: absolute; left: 0; top: 10px;
}

/* Steppers & Timelines */
.stepper, .process-steps { display: flex; flex-direction: column; gap: 8px; }
.stepper li, .process-steps li {
  padding: 10px 12px; border-left: 3px solid var(--brand-primary); background: rgba(21,62,111,0.08); border-radius: 0 var(--radius-s) var(--radius-s) 0;
}
.timeline ul, .milestones ul { display: flex; flex-direction: column; gap: 8px; }
.timeline li, .milestones li { color: var(--text-muted); border-left: 2px dashed var(--metal-400); padding: 8px 12px; }

/* Tables */
.package-comparison-table table, .cookie-table table {
  width: 100%; border-collapse: collapse;
  border: 1px solid var(--metal-600); border-radius: var(--radius-m);
}
.package-comparison-table th, .package-comparison-table td, .cookie-table th, .cookie-table td {
  padding: 12px; border-bottom: 1px solid var(--metal-600);
}
.package-comparison-table thead th, .cookie-table thead th { background: var(--ink-800); color: var(--text-strong); text-align: left; }
.package-comparison-table tbody tr:nth-child(odd), .cookie-table tbody tr:nth-child(odd) { background: rgba(255,255,255,0.03); }

/* Search bar (Guide) */
.search-bar { display: flex; align-items: center; gap: 10px; background: var(--ink-700); border: 1px solid var(--metal-600); border-radius: var(--radius-m); padding: 10px 12px; }
.search-bar input[type="search"] { flex: 1 1 auto; background: transparent; color: var(--text-strong); border: none; }
.search-bar img { width: 18px; height: 18px; opacity: 0.8; }

/* Resource categories */
.resource-categories { display: flex; flex-wrap: wrap; gap: 10px; }
.resource-categories a { padding: 8px 12px; border: 1px solid var(--metal-600); border-radius: 999px; color: var(--text-muted); }
.resource-categories a:hover { color: var(--brand-accent); border-color: var(--brand-primary); background: rgba(21,62,111,0.15); }

/* Download center */
.download-center ul { display: flex; flex-direction: column; gap: 8px; }
.download-center a { color: var(--brand-accent); text-decoration: underline; }

/* CTA Banners */
.cta-banner { background: linear-gradient(0deg, rgba(46,140,127,0.08), rgba(46,140,127,0.08)), var(--ink-700); border-color: var(--metal-500); display: flex; flex-direction: column; gap: var(--space-12); }
.cta-banner .cta-primary { align-self: flex-start; }

/* Contact & Info blocks */
.contact-details, .opening-hours, .map, .map-preview, .association-memberships, .communication-channels, .payment-methods, .guarantees, .before-after-highlights, .edge-cases-overview, .risk-areas, .coordination-rules-overview, .service-recommendations, .sla-expectations, .what-affects-costs, .scope-of-work-examples, .privacy-contact-form-info, .legal-contact-form-info, .response-times-info, .privacy-note, .alternative-channels {
  display: flex; flex-direction: column; gap: 8px;
}
.contact-details p, .opening-hours, .map, .map-preview { color: var(--text-muted); }
.contact-details img, .opening-hours img, .map img, .map-preview img { width: 18px; height: 18px; display: inline-block; margin-right: 8px; }
.association-memberships { display: flex; align-items: center; gap: 10px; color: var(--text-muted); }

/* FAQ lists */
.faq-list { display: flex; flex-direction: column; gap: 12px; }
.faq-list dt { font-weight: 700; color: var(--brand-accent); }
.faq-list dd { color: var(--text-muted); margin-left: 0; }

/* Articles (Guide) */
.featured-articles article { background: var(--ink-700); border: 1px solid var(--metal-600); border-radius: var(--radius-m); padding: var(--space-20); }
.featured-articles a { color: var(--brand-secondary); text-decoration: underline; }

/* Testimonials slider */
.testimonial-slider { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: var(--space-20); scroll-snap-type: x mandatory; padding-bottom: 6px; }
.testimonial-slider .testimonial-card { min-width: 260px; scroll-snap-align: start; }

/* Tables in legal pages in a light card wrapper */
.legal-block { background: var(--ink-700); border: 1px solid var(--metal-600); }
.policy-sections h3, .terms-sections h3 { margin-top: var(--space-16); }
.policy-sections ul, .terms-sections ul, .rights-overview ul { display: flex; flex-direction: column; gap: 8px; }

/* Footer */
footer { background: var(--ink-850); border-top: 1px solid var(--metal-600); margin-top: var(--space-40); }
footer .container { padding: var(--space-20); }
.footer-navigation, .social-links { display: flex; flex-wrap: wrap; gap: 12px; }
.footer-navigation a { color: var(--text-muted); padding: 6px 8px; border-radius: 6px; transition: background-color .2s ease, color .2s ease; }
.footer-navigation a:hover { background: rgba(21,62,111,0.12); color: var(--brand-accent); }
.contact-snippet p { color: var(--text-muted); }
.social-links a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid var(--metal-600); border-radius: 8px; }
.social-links img { width: 18px; height: 18px; }

/* Buttons in footer banners etc */
.phone-cta a { display: inline-flex; align-items: center; gap: 8px; color: var(--brand-accent); text-decoration: underline; }
.whatsapp-cta-placeholder { display: inline-flex; align-items: center; gap: 8px; color: var(--text-muted); }

/* Filters & sorting */
.filters-sorting { display: flex; align-items: center; gap: 8px; color: var(--text-muted); }
.filters-sorting a { color: var(--brand-secondary); text-decoration: underline; }

/* Tables & inline elements spacing */
table { margin-top: var(--space-12); }

/* Micro-interactions */
.service-card:hover, .package-card:hover, .topic-card:hover, .mini-case-card:hover, .advisor-profile:hover, .featured-articles article:hover {
  border-color: var(--metal-500); transform: translateY(-2px); transition: transform .15s ease, border-color .2s ease;
}

/* Responsive Layout Rules */
/* Mobile-first: everything stacks in column. */
/* On wider screens, row layout for feature grids and header content is maintained by flex-basis and wrapping above. */

/* Alignment helpers */
.text-image-section { align-items: center; }
@media (max-width: 768px) {
  .text-image-section { flex-direction: column; }
}

/* Desktop enhancements */
@media (min-width: 768px) {
  h1 { font-size: 44px; }
  h2 { font-size: 32px; }
}
@media (min-width: 1024px) {
  .header-top { padding: var(--space-20) 0; }
  .hero .content-wrapper { padding: var(--space-48) 0; }
}

/* Industrial accents: dividers and separators */
section .content-wrapper { border-left: 1px solid rgba(255,255,255,0.04); padding-left: var(--space-20); }

/* Specific page element styles */
.country-scope-preview ul, .coordination-topics-list ul, .documentation-requirements ul, .documents-checklist ul, .documents-needed ul, .transparency-principles ul, .scope-of-work-examples ul, .guarantees ul {
  display: flex; flex-direction: column; gap: 8px;
}
.services-cta-strip, .cta-strip, .contact-prompt { display: flex; align-items: center; gap: 12px; }
.services-cta-strip .cta-primary, .cta-strip a { align-self: flex-start; }

/* Rating & impact */
.metrics-counters { display: flex; flex-wrap: wrap; gap: var(--space-24); }
.counter { display: flex; flex-direction: column; gap: 6px; background: var(--ink-700); border: 1px solid var(--metal-600); border-radius: var(--radius-m); padding: 16px; min-width: 180px; }
.counter span { font-size: 28px; color: var(--brand-secondary); font-weight: 700; }
.impact-highlights { color: var(--brand-accent); font-weight: 600; }

/* Team profiles */
.advisor-profile h3 { color: var(--brand-accent); }

/* Article list */
.article-list ul { display: flex; flex-direction: column; gap: 8px; }
.article-list a { color: var(--brand-secondary); text-decoration: underline; }

/* Tables in packages */
.package-comparison-table { display: flex; flex-direction: column; gap: 10px; }

/* Video testimonial placeholder */
.video-testimonial-placeholder { display: flex; align-items: center; gap: 12px; color: var(--text-muted); }
.video-testimonial-placeholder img { width: 36px; height: 36px; }

/* Light backgrounds requirement for testimonials & reviews already applied above */

/* Cookie Consent Banner */
.cookie-banner {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1300;
  display: none; /* hidden by default, show with .show */
  padding: 14px 16px; border-top: 1px solid var(--metal-600);
  background: var(--ink-850); color: var(--text-strong);
  box-shadow: 0 -8px 24px rgba(0,0,0,0.3);
}
.cookie-banner.show { display: flex; }
.cookie-banner .container { width: 100%; }
.cookie-banner .content-wrapper { flex-direction: row; align-items: center; justify-content: space-between; gap: var(--space-16); }
.cookie-text { display: flex; flex: 1 1 auto; color: var(--text-muted); }
.cookie-actions { display: flex; align-items: center; gap: 10px; }
.cookie-actions .btn { padding: 10px 14px; border-radius: 8px; border: 1px solid var(--metal-600); }
.cookie-accept { background: var(--brand-secondary); color: #0E1418; }
.cookie-reject { background: rgba(255,255,255,0.04); color: var(--brand-accent); }
.cookie-settings { background: rgba(21,62,111,0.14); color: var(--brand-accent); border-color: var(--brand-primary); }

/* Cookie Preferences Modal */
.cookie-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 1400;
  opacity: 0; pointer-events: none; transition: opacity .25s ease;
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.cookie-modal-overlay.open { opacity: 1; pointer-events: auto; }
.cookie-modal {
  width: 100%; max-width: 720px; background: var(--ink-800); border: 1px solid var(--metal-600);
  border-radius: var(--radius-l); box-shadow: var(--shadow-2);
  display: flex; flex-direction: column; gap: 14px; padding: 18px;
}
.cookie-modal h3 { font-size: 22px; }
.cookie-category { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--metal-600); }
.cookie-category .note { color: var(--text-muted); font-size: 14px; }
.cookie-modal .modal-actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 6px; }

/* Simple toggle switch for cookie modal */
.toggle { position: relative; width: 44px; height: 24px; border-radius: 999px; background: #3a4652; border: 1px solid var(--metal-600); display: inline-flex; align-items: center; padding: 2px; }
.toggle::after { content: ""; width: 18px; height: 18px; border-radius: 50%; background: #CBD6E2; transform: translateX(0); transition: transform .2s ease; }
.toggle.on { background: var(--brand-secondary); }
.toggle.on::after { transform: translateX(20px); background: #0E1418; }

/* Utilities */
.mt-20 { margin-top: 20px; }
.mb-20 { margin-bottom: 20px; }
.gap-20 { gap: 20px; }
.hidden { display: none !important; }

/* Ensure minimum spacing between cards and sections */
section { margin-bottom: var(--space-60); padding: var(--space-40) 0; }
section .service-card, section .package-card, section .topic-card, section .mini-case-card, section .advisor-profile, section .testimonial-card, section .featured-articles article { margin-bottom: var(--space-20); }

/* Industrial focus outlines for accessibility */
.cta-primary:focus-visible, .cta-secondary:focus-visible, .mobile-menu-toggle:focus-visible, .mobile-menu-close:focus-visible, .main-nav a:focus-visible, .mobile-nav a:focus-visible { box-shadow: 0 0 0 3px rgba(46,140,127,0.35); }

/* Map previews */
.map-preview, .map { background: var(--ink-700); border: 1px solid var(--metal-600); border-radius: var(--radius-m); padding: 12px; }

/* Association & badges */
.association-memberships img { width: 22px; height: 22px; }

/* Links appearance */
a { color: var(--brand-secondary); }
a:hover { color: #8FE1D6; }

/* Print-safe table overflow */
.package-comparison-table, .cookie-table { overflow-x: auto; display: flex; flex-direction: column; }

/* Header layout fix for very small screens */
@media (max-width: 420px) {
  .header-top img { width: 140px; }
}

/* Desktop footer layout */
@media (min-width: 992px) {
  footer .container .content-wrapper, footer .container { display: flex; flex-direction: column; }
  footer .container { align-items: center; }
  footer .container > div { width: 100%; max-width: 1200px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
}

/* Ensure no overlapping content near sticky header and cookie banner */
main { display: flex; flex-direction: column; gap: var(--space-40); }

/* Industrial Modern Headline Accents */
h2 { position: relative; padding-left: 14px; }
h2::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 4px; background: var(--brand-primary); border-radius: 2px; }

/* Breadcrumb subtle divider */
.breadcrumb { border-left: 3px solid var(--metal-600); padding-left: 10px; }

/* Inline icons alignment in contact sections */
.contact-details p img, .phone-cta a img { display: inline-block; vertical-align: middle; }

/* Tables: better readability on dark */
.cookie-table th, .cookie-table td { color: var(--text-strong); }

/* Alignment rules per spec */
/* Already ensured: align-items center for vertical centering where applicable */

/* Prevent content overlap by consistent gaps */
.content-wrapper > * + * { margin-top: 0; }

/* End of style.css */
