/* ============================================================
   S06 Southern England Translation — Modern Site Stylesheet
   Theme: British Navy + Crimson/Burgundy (London Financial / UKVI)
   ============================================================ */

/* --- CSS Custom Properties --- */
:root {
  /* British Navy palette */
  --navy-950: #050e1f;
  --navy-900: #0a1a33;
  --navy-800: #102547;
  --navy-700: #16325c;
  --navy-600: #1d4070;
  --navy-500: #26528a;
  --navy-400: #3a6ba8;
  --navy-300: #6a92c4;
  --navy-100: #d4e0f0;
  --navy-50: #eef3fa;

  /* Crimson / Burgundy accent */
  --crimson-900: #5c0f1e;
  --crimson-800: #7a1528;
  --crimson-700: #961b32;
  --crimson-600: #b0223c;
  --crimson-500: #c82a47;
  --crimson-400: #d94a63;
  --crimson-300: #e6788c;
  --crimson-100: #f8d8de;
  --crimson-50: #fdf0f3;

  /* Subtle gold (British heritage) */
  --gold-600: #9a7b1f;
  --gold-500: #b8942e;
  --gold-400: #d4b24a;
  --gold-100: #f7eed4;

  /* Neutrals */
  --gray-900: #0d1421;
  --gray-800: #1c2536;
  --gray-700: #334155;
  --gray-600: #475569;
  --gray-500: #64748b;
  --gray-400: #94a3b8;
  --gray-300: #cbd5e1;
  --gray-200: #e2e8f0;
  --gray-100: #f1f5f9;
  --gray-50: #f8fafc;
  --white: #ffffff;
  --cream: #faf8f5;

  /* Semantic */
  --bg-body: var(--cream);
  --bg-section: var(--white);
  --bg-alt: var(--navy-50);
  --text-primary: var(--gray-900);
  --text-secondary: var(--gray-600);
  --text-muted: var(--gray-500);
  --border-color: var(--gray-200);
  --border-light: var(--gray-100);
  --success: #15803d;

  /* Shadows */
  --shadow-xs: 0 1px 2px rgba(10, 26, 51, 0.04);
  --shadow-sm: 0 2px 8px rgba(10, 26, 51, 0.06);
  --shadow-md: 0 4px 16px rgba(10, 26, 51, 0.08);
  --shadow-lg: 0 8px 30px rgba(10, 26, 51, 0.12);
  --shadow-xl: 0 16px 48px rgba(10, 26, 51, 0.16);
  --shadow-crimson: 0 4px 14px rgba(176, 34, 60, 0.28);

  /* Radii */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 999px;

  /* Spacing */
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;

  /* Layout */
  --container-max: 1200px;
  --container-narrow: 820px;
  --header-height: 72px;

  /* Transitions */
  --transition-fast: 0.15s ease;
  --transition-base: 0.25s ease;
  --transition-slow: 0.4s ease;

  /* Typography */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-serif: 'Georgia', 'Times New Roman', serif;
}

/* --- Reset & Base --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; overflow-wrap: anywhere; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.7;
  color: var(--text-secondary);
  background: var(--bg-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  word-break: break-word;
  overflow-wrap: break-word;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a {
  color: var(--navy-600);
  text-decoration: none;
  transition: color var(--transition-fast);
}
a:hover { color: var(--crimson-600); }

ul, ol { list-style: none; }

h1, h2, h3, h4, h5, h6 {
  color: var(--text-primary);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

h1 { font-size: clamp(1.8rem, 4vw, 2.75rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.35rem); }
h4 { font-size: 1.05rem; }

p { margin-bottom: 1rem; }

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}

input, select, textarea, button {
  font-family: inherit;
  font-size: inherit;
}

/* --- Skip Link --- */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  padding: 12px 24px;
  background: var(--crimson-600);
  color: var(--white);
  font-weight: 700;
  border-radius: 0 0 var(--radius-md) 0;
  transition: left var(--transition-fast);
}
.skip-link:focus { left: 0; }

/* --- Layout Container (copy pages use .container) --- */
.container, .wrap {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  /* Page-side breathing room: ≥20px mobile, ~4vw, up to 56px desktop */
  padding-left: clamp(1.25rem, 4vw, 3.5rem);
  padding-right: clamp(1.25rem, 4vw, 3.5rem);
}

/* Page-side breathing room for every top-level content block inside <main>
   and post-main sections (page-head / hero / section etc.) not wrapped in .container */
main > *:not(.container):not(.wrap),
body > section:not(.container):not(.wrap) {
  padding-left: clamp(1.25rem, 4vw, 3.5rem);
  padding-right: clamp(1.25rem, 4vw, 3.5rem);
}

/* ============================================================
   HEADER / NAVIGATION (new unified nav)
   ============================================================ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--white);
  border-bottom: 1px solid var(--border-light);
  box-shadow: var(--shadow-sm);
}

/* Utility bar */
.utility-bar {
  background: var(--navy-900);
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.8rem;
  padding: 6px 0;
}
.utility-bar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.utility-bar a {
  color: rgba(255, 255, 255, 0.75);
  font-weight: 500;
}
.utility-bar a:hover { color: var(--crimson-300); }
.utility-bar-left, .utility-bar-right {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.utility-phone {
  color: var(--crimson-300);
  font-weight: 700;
}

/* Header inner — header uses a wider container so the full nav + CTAs fit on desktop.
   Hide the brand tagline below 1700px to reclaim horizontal space. */
.site-header .container {
  max-width: 1600px;
}
@media (max-width: 1700px) {
  .brand-tagline { display: none; }
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: var(--header-height);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

/* Brand */
.brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-shrink: 0;
}
.brand-logo {
  width: 42px;
  height: 42px;
  background: linear-gradient(135deg, var(--navy-800), var(--navy-600));
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--crimson-300);
  font-weight: 800;
  font-size: 1.1rem;
  border: 1px solid rgba(200, 42, 71, 0.25);
}
.brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.brand-name {
  font-weight: 800;
  font-size: 0.88rem;
  color: var(--navy-800);
  letter-spacing: -0.01em;
}
.brand-tagline {
  font-size: 0.68rem;
  color: var(--crimson-700);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Main nav */
.main-nav {
  display: flex;
  align-items: center;
  gap: 0.05rem;
  flex: 1;
  justify-content: center;
}

.nav-item { position: relative; }

.nav-link {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.4rem 0.4rem;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--gray-700);
  border-radius: var(--radius-sm);
  transition: all var(--transition-fast);
  white-space: nowrap;
}
.nav-link:hover,
.nav-item:hover > .nav-link {
  color: var(--navy-800);
  background: var(--navy-50);
}
.nav-link .caret {
  font-size: 0.6rem;
  color: var(--gray-400);
  transition: transform var(--transition-fast);
}
.nav-item:hover > .nav-link .caret {
  transform: rotate(180deg);
  color: var(--crimson-600);
}

/* Mega menu */
.mega-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 600px;
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  padding: 1.5rem;
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition-base);
  z-index: 1001;
}
.nav-item:hover .mega-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.mega-menu-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.mega-menu-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }

.mega-menu-col h4 {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--crimson-700);
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--crimson-100);
}
.mega-menu-col a {
  display: block;
  padding: 0.38rem 0;
  font-size: 0.86rem;
  color: var(--gray-600);
  font-weight: 500;
  transition: all var(--transition-fast);
}
.mega-menu-col a:hover {
  color: var(--navy-700);
  padding-left: 4px;
}

/* Simple dropdown */
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: 0.5rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: all var(--transition-base);
  z-index: 1001;
}
.nav-item:hover .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.dropdown-menu a {
  display: block;
  padding: 0.55rem 0.75rem;
  font-size: 0.88rem;
  color: var(--gray-600);
  font-weight: 500;
  border-radius: var(--radius-sm);
  transition: all var(--transition-fast);
}
.dropdown-menu a:hover {
  background: var(--navy-50);
  color: var(--navy-700);
}

/* Header CTA */
.header-cta {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}

/* Mobile menu toggle */
.mobile-menu-toggle {
  display: none;
  background: none;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  padding: 0.5rem 0.7rem;
  cursor: pointer;
  color: var(--navy-700);
  font-size: 1.2rem;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.7rem 1.6rem;
  font-size: 0.92rem;
  font-weight: 700;
  border-radius: var(--radius-full);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--transition-base);
  text-decoration: none;
  white-space: nowrap;
  line-height: 1.4;
}

.btn-primary {
  background: linear-gradient(135deg, var(--crimson-600), var(--crimson-700));
  color: var(--white);
  box-shadow: var(--shadow-crimson);
}
.btn-primary:hover {
  background: linear-gradient(135deg, var(--crimson-500), var(--crimson-600));
  color: var(--white);
  box-shadow: 0 6px 20px rgba(176, 34, 60, 0.38);
  transform: translateY(-1px);
}

.btn-navy {
  background: var(--navy-700);
  color: var(--white);
  box-shadow: var(--shadow-sm);
}
.btn-navy:hover {
  background: var(--navy-800);
  color: var(--white);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

.btn-ghost, .btn-outline {
  background: transparent;
  border-color: var(--navy-300);
  color: var(--navy-700);
}
.btn-ghost:hover, .btn-outline:hover {
  background: var(--navy-50);
  border-color: var(--navy-600);
  color: var(--navy-800);
}

.btn-lg { padding: 0.85rem 2rem; font-size: 1rem; }
.btn-sm { padding: 0.45rem 0.85rem; font-size: 0.78rem; white-space: nowrap; }

/* ============================================================
   BREADCRUMB
   ============================================================ */
.breadcrumb {
  padding: 1rem 0;
  font-size: 0.84rem;
  color: var(--text-muted);
  background: var(--white);
  border-bottom: 1px solid var(--border-light);
}
.breadcrumb a {
  color: var(--navy-500);
  font-weight: 500;
}
.breadcrumb a:hover { color: var(--crimson-600); }

/* ============================================================
   HERO (copy page .hero with .hero-grid)
   ============================================================ */
.hero {
  background: linear-gradient(135deg, var(--navy-900) 0%, var(--navy-700) 60%, var(--navy-800) 100%);
  color: var(--white);
  padding: var(--space-xl) 0;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  top: -40%;
  right: -8%;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(200, 42, 71, 0.15) 0%, transparent 70%);
  border-radius: 50%;
}
.hero::after {
  content: '';
  position: absolute;
  bottom: -30%;
  left: -5%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(38, 82, 138, 0.3) 0%, transparent 70%);
  border-radius: 50%;
}
.hero > .container,
.hero > .container.hero-grid {
  position: relative;
  z-index: 1;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.hero .eyebrow {
  color: var(--crimson-300);
}
.hero h1, .hero .display-hero {
  color: var(--white);
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 1rem;
}
.hero .body-lg,
.hero p {
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.1rem;
  line-height: 1.7;
}
.hero .btn-ghost {
  border-color: rgba(255, 255, 255, 0.4);
  color: var(--white);
}
.hero .btn-ghost:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--white);
  color: var(--white);
}

/* Hero SVG illustration area */
.hero > .container > div:last-child svg,
.hero-grid > div:last-child {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ============================================================
   EYEBROW / DISPLAY TYPOGRAPHY (copy page classes)
   ============================================================ */
.eyebrow {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--crimson-700);
  margin-bottom: 0.75rem;
}

.display-hero {
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 800;
  line-height: 1.1;
  color: var(--navy-900);
  margin-bottom: 1rem;
}

.display-large {
  font-size: clamp(1.6rem, 3.2vw, 2.3rem);
  font-weight: 700;
  line-height: 1.15;
  color: var(--navy-800);
  margin-bottom: 0.75rem;
}

.section-heading {
  font-size: clamp(1.4rem, 2.5vw, 1.85rem);
  font-weight: 700;
  color: var(--navy-800);
  margin-bottom: 0.75rem;
}

.body-lg {
  font-size: 1.08rem;
  color: var(--text-secondary);
  line-height: 1.75;
}

.text-center { text-align: center; }

/* ============================================================
   SECTIONS (copy page .section / .section-sm / .section-tight)
   ============================================================ */
.section {
  padding: var(--space-xl) 0;
}
.section-sm {
  padding: var(--space-lg) 0;
}
.section-tight {
  padding: var(--space-md) 0;
}

/* Alternating section backgrounds */
.section:nth-of-type(even),
.section.alt,
.section-sm.alt {
  background: var(--white);
}

/* ============================================================
   TRUST BAR
   ============================================================ */
.trust-bar {
  display: flex;
  gap: 1.5rem;
  margin-top: 2rem;
  flex-wrap: wrap;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
}
.trust-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--crimson-500);
  color: var(--white);
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}

/* ============================================================
   CARDS (copy page .smooth-card / .related-grid)
   ============================================================ */
.related-grid,
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
  margin-top: 2rem;
}
.related-grid.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));}
@media(max-width:980px){.related-grid.grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.related-grid.grid-4{grid-template-columns:1fr;}}

.smooth-card,
.card {
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  box-shadow: var(--shadow-sm);
  transition: all var(--transition-base);
  position: relative;
  overflow: hidden;
}
.smooth-card::before,
.card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--crimson-500), var(--crimson-300));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-base);
}
.smooth-card:hover,
.card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
  border-color: var(--navy-100);
}
.smooth-card:hover::before,
.card:hover::before {
  transform: scaleX(1);
}
.smooth-card h4,
.card h3, .card h4 {
  color: var(--navy-700);
  font-size: 1.08rem;
  font-weight: 700;
  margin-bottom: 0.6rem;
}
.smooth-card p,
.card p {
  color: var(--text-secondary);
  font-size: 0.92rem;
  line-height: 1.7;
  margin-bottom: 0;
}

/* Card with number badge (how-it-works steps) */
.smooth-card.text-center {
  text-align: center;
}
.smooth-card.text-center > div:first-child {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--crimson-100), var(--crimson-50));
  color: var(--crimson-700);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.05rem;
  margin-bottom: 0.75rem;
}

/* Card link */
.card-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--crimson-600);
  font-size: 0.88rem;
  font-weight: 600;
  margin-top: 0.75rem;
}
.card-link:hover { text-decoration: underline; color: var(--crimson-700); }

/* ============================================================
   STAT ROW
   ============================================================ */
.stat-row {
  display: flex;
  gap: 3rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 2.5rem;
}
.stat-row > div { text-align: center; }
.stat-num {
  font-size: clamp(1.8rem, 3.5vw, 2.5rem);
  font-weight: 800;
  color: var(--crimson-600);
  line-height: 1.1;
}
.stat-label {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-top: 0.35rem;
  font-weight: 500;
}

/* ============================================================
   STAR RATING / REVIEWS
   ============================================================ */
.star-rating {
  color: var(--gold-500);
  letter-spacing: 2px;
  font-size: 1rem;
  margin-bottom: 0.5rem;
}
.review-card {
  break-inside: avoid;
}
.review-card p {
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 0.75rem;
  font-size: 0.95rem;
}
.review-card strong {
  color: var(--navy-800);
  font-weight: 700;
}

/* ============================================================
   FAQ (copy page .faq-list with <details>)
   ============================================================ */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 1.5rem;
  border-top: 1px solid var(--border-color);
  max-width: var(--container-narrow);
  margin-left: auto;
  margin-right: auto;
}
.faq-item {
  border-bottom: 1px solid var(--border-color);
  background: var(--white);
}
.faq-q {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 1.1rem 0.5rem;
  background: none;
  border: none;
  font-size: 1rem;
  font-weight: 600;
  color: var(--navy-800);
  text-align: left;
  cursor: pointer;
  font-family: var(--font-sans);
  transition: color var(--transition-fast);
}
.faq-q:hover { color: var(--crimson-600); }
.faq-q::-webkit-details-marker { display: none; }
.faq-q::after {
  content: "+";
  margin-left: auto;
  font-size: 1.4rem;
  color: var(--crimson-500);
  font-weight: 300;
  transition: transform var(--transition-fast);
  flex-shrink: 0;
}
.faq-item[open] .faq-q::after {
  content: "−";
}
.faq-a {
  padding: 0 0.5rem 1.1rem;
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--text-secondary);
}
.faq-a p { margin-bottom: 0.5rem; }

/* ============================================================
   QUOTE / FORM SECTION (post-main form)
   ============================================================ */
section[aria-label*="Quote"],
section[aria-label*="quote"],
.quote-band {
  background: linear-gradient(135deg, var(--navy-900), var(--navy-700));
  padding: var(--space-xl) 0;
  position: relative;
  overflow: hidden;
}
section[aria-label*="Quote"]::before,
.quote-band::before {
  content: '';
  position: absolute;
  top: -30%;
  left: 50%;
  transform: translateX(-50%);
  width: 800px;
  height: 400px;
  background: radial-gradient(ellipse, rgba(200, 42, 71, 0.12) 0%, transparent 70%);
}
section[aria-label*="Quote"] .container,
.quote-band .container {
  position: relative;
  z-index: 1;
}
section[aria-label*="Quote"] h2,
.quote-band .section-heading {
  color: var(--white);
  text-align: center;
}

/* Form styling */
section[aria-label*="Quote"] form,
.quote-band form,
.form-wrap form {
  background: var(--white);
  border-radius: var(--radius-xl);
  padding: 2rem;
  max-width: 600px;
  margin: 0 auto;
  box-shadow: var(--shadow-xl);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
section[aria-label*="Quote"] form label,
.form-wrap label {
  display: block;
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--gray-700);
  margin-bottom: 0.35rem;
}
section[aria-label*="Quote"] form input,
section[aria-label*="Quote"] form select,
section[aria-label*="Quote"] form textarea,
.form-wrap input,
.form-wrap select,
.form-wrap textarea {
  width: 100%;
  padding: 0.7rem 0.9rem;
  border: 1.5px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: 0.92rem;
  color: var(--text-primary);
  background: var(--gray-50);
  transition: all var(--transition-fast);
  margin-top: 0.25rem;
}
section[aria-label*="Quote"] form input:focus,
.form-wrap input:focus,
.form-wrap select:focus,
.form-wrap textarea:focus {
  outline: none;
  border-color: var(--crimson-500);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(200, 42, 71, 0.1);
}
section[aria-label*="Quote"] form .btn-primary,
.form-wrap .btn-primary {
  width: 100%;
  padding: 0.85rem;
  font-size: 1rem;
  margin-top: 0.5rem;
}
section[aria-label*="Quote"] form p,
.form-note {
  font-size: 0.8rem;
  color: var(--text-muted);
  text-align: center;
  margin: 0;
}

/* Form grid (2-col) */
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

/* ============================================================
   CTA BAND
   ============================================================ */
.cta-band {
  background: var(--white);
  padding: var(--space-xl) 0;
  text-align: center;
  border-top: 1px solid var(--border-light);
  border-bottom: 1px solid var(--border-light);
}
.cta-band h2 {
  color: var(--navy-800);
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
}
.cta-band p {
  color: var(--text-secondary);
  font-size: 1.05rem;
  max-width: 560px;
  margin: 0 auto 1.5rem;
}
.cta-band .cta-row,
.cta-band > div > div {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ============================================================
   LINK GRID (related pages)
   ============================================================ */
.link-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0.75rem;
  margin-top: 2rem;
}
.link-grid a {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  padding: 0.85rem 1.1rem;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--navy-700);
  transition: all var(--transition-base);
}
.link-grid a::before {
  content: '→';
  color: var(--crimson-500);
  font-weight: 700;
  flex-shrink: 0;
}
.link-grid a:hover {
  background: var(--navy-50);
  border-color: var(--navy-300);
  color: var(--navy-800);
  transform: translateX(4px);
  box-shadow: var(--shadow-sm);
}

/* ============================================================
   PAGE HEAD (subpage banner)
   ============================================================ */
.page-head {
  background: linear-gradient(135deg, var(--navy-900) 0%, var(--navy-700) 100%);
  color: var(--white);
  padding: var(--space-xl) 0;
  position: relative;
  overflow: hidden;
}
.page-head::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -10%;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(200, 42, 71, 0.12) 0%, transparent 70%);
  border-radius: 50%;
}
.page-head .container { position: relative; z-index: 1; }
.page-head .ph-title,
.page-head h1 {
  color: var(--white);
  font-size: clamp(1.8rem, 4.5vw, 2.75rem);
  font-weight: 800;
  margin-bottom: 0.75rem;
  max-width: 800px;
}
.page-head .sub,
.page-head p {
  color: rgba(255, 255, 255, 0.8);
  font-size: 1.1rem;
  max-width: 640px;
}

/* ============================================================
   CONTENT SECTION (article-style)
   ============================================================ */
.content-section {
  padding: var(--space-lg) 0;
}
.content-section .content-inner {
  max-width: var(--container-narrow);
  margin: 0 auto;
}
.content-section h2 {
  color: var(--navy-800);
  font-size: 1.5rem;
  margin-bottom: 1rem;
}
.content-section p {
  color: var(--text-secondary);
  font-size: 1rem;
  line-height: 1.8;
}

/* ============================================================
   404 / SEARCH
   ============================================================ */
.notfound, .min-h {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 0;
}
.search-wrap {
  max-width: 560px;
  margin: 0 auto;
  width: 100%;
}
.search-input {
  width: 100%;
  padding: 0.85rem 1.1rem;
  border: 1.5px solid var(--border-color);
  border-radius: var(--radius-md);
  font-size: 1rem;
  transition: border-color var(--transition-fast);
}
.search-input:focus {
  outline: none;
  border-color: var(--crimson-500);
  box-shadow: 0 0 0 3px rgba(200, 42, 71, 0.1);
}

/* Error text */
.err {
  font-size: 0.78rem;
  color: var(--crimson-600);
  margin-top: 0.25rem;
  display: block;
}

/* ============================================================
   FOOTER (new unified footer)
   ============================================================ */
.site-footer {
  background: var(--navy-950);
  color: rgba(255, 255, 255, 0.65);
  padding: var(--space-xl) 0 0;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(4, 1fr);
  gap: 2.5rem;
  padding-bottom: var(--space-lg);
}
.footer-brand-col .brand-name {
  color: var(--white);
  font-size: 1.2rem;
  margin-bottom: 0.4rem;
}
.footer-brand-col .brand-tagline {
  color: var(--crimson-300);
  margin-bottom: 0.75rem;
}
.footer-brand-col p {
  font-size: 0.86rem;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.7;
}
.footer-col h4,
.footer-col h5 {
  color: var(--white);
  font-size: 0.92rem;
  font-weight: 700;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid rgba(200, 42, 71, 0.3);
  display: inline-block;
}
.footer-col a,
.footer-col ul li a {
  display: block;
  padding: 0.28rem 0;
  font-size: 0.86rem;
  color: rgba(255, 255, 255, 0.55);
  transition: all var(--transition-fast);
}
.footer-col a:hover,
.footer-col ul li a:hover {
  color: var(--crimson-300);
  padding-left: 4px;
}
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1.25rem 0;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.4);
}
.footer-bottom .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.footer-bottom-links {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.footer-bottom-links a {
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.8rem;
}
.footer-bottom-links a:hover { color: var(--crimson-300); }

/* ============================================================
   TABLES
   ============================================================ */
.table-wrapper {
  overflow-x: auto;
  margin: 1.5rem 0;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-light);
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}
th {
  background: var(--navy-800);
  color: var(--white);
  font-weight: 600;
  text-align: left;
  padding: 0.75rem 1rem;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
td {
  padding: 0.7rem 1rem;
  border-bottom: 1px solid var(--border-light);
  color: var(--text-secondary);
}
tr:nth-child(even) td { background: var(--gray-50); }
tr:hover td { background: var(--navy-50); }

/* ============================================================
   MISC UTILITIES
   ============================================================ */
.small, .text-small, .text-xs { font-size: 0.82rem; }
.badge {
  display: inline-block;
  padding: 0.25rem 0.65rem;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 600;
  background: var(--crimson-100);
  color: var(--crimson-700);
}
.content-label {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}

/* SVG in content */
main svg, section svg {
  max-width: 100%;
  height: auto;
}


/* ============ UI Enhance patch ============ */
/* 卡片 hover 微动效 */
.card,.service-card,.case-card,.feature-card,.blog-card,.content-card,.smooth-card,.stat-card,.review-card,.offer-card,.plan-card,.grid>.card{border-radius:14px;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;}
.card:hover,.service-card:hover,.case-card:hover,.feature-card:hover,.blog-card:hover,.content-card:hover,.smooth-card:hover,.stat-card:hover,.review-card:hover,.offer-card:hover,.plan-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(15,23,42,.12);}
/* 按钮 hover 微动效 */
.btn{transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,23,42,.18);}
.btn:active{transform:translateY(0);}
/* 链接/徽章 hover */
a{transition:color .2s ease;}
/* 图片 hover 微缩放（详情图/案例图） */
.gallery-card img,.case-card img,.media img,.thumb img{transition:transform .35s ease;}
.gallery-card:hover img,.case-card:hover img,.media:hover img,.thumb:hover img{transform:scale(1.04);}
/* 表单居中 + 紧凑 */
form{max-width:600px;margin:1.6rem auto;}
form .form-field,form .field,form label{display:block;margin-bottom:.35rem;font-weight:600;font-size:.9rem;}
form input,form textarea,form select{width:100%;padding:.6rem .8rem;margin-bottom:.9rem;border:1px solid rgba(15,23,42,.16);border-radius:8px;font-size:.95rem;background:#fff;box-sizing:border-box;}
form input:focus,form textarea:focus,form select:focus{outline:none;border-color:var(--accent,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.12);}
form .form-actions,form button[type=submit]{margin-top:.3rem;}
/* 跑马灯动画 */
@keyframes ui-marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.ui-marquee{display:flex;width:max-content;animation:ui-marquee 26s linear infinite;}
.ui-marquee:hover{animation-play-state:paused;}
/* 淡入进入动效 */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .55s ease,transform .55s ease;}
.reveal.visible{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}.ui-marquee{animation:none;}}
/* 标题居左、内容居中（模块级） */
.section-head{text-align:left;}
.section-head h2,.section-head h3,.section-head .title{text-align:left;}
.section-head p{margin-inline:0;text-align:left;}
/* 数据带数字动效 */
.ui-count{font-variant-numeric:tabular-nums;}
/* 平滑滚动 */
html{scroll-behavior:smooth;}

/* ============ Hero premium patch ============ */
.hero-premium{background:radial-gradient(720px 300px at 15% 15%,#d94a6326,transparent 60%),linear-gradient(135deg,#0a1a33 0%,#16325c 45%,#102547 100%);color:#fff;padding:var(--space-xl,4rem) 0;position:relative;overflow:hidden;}
.hero-premium::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;}
.hero-premium::after{content:'';position:absolute;top:-30%;right:-5%;width:560px;height:560px;background:radial-gradient(circle,#d94a6320,transparent 65%);border-radius:50%;}
.hero-premium .hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
.hero-premium .eyebrow{color:#d94a63;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem;display:block;}
.hero-premium h1{color:#fff;font-size:clamp(1.9rem,4.2vw,2.9rem);font-weight:800;line-height:1.12;margin-bottom:1rem;}
.hero-premium .text-grad{background:linear-gradient(100deg,#fff 0%,#e6788c 45%,#d94a63 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.hero-premium p{color:rgba(255,255,255,.82);font-size:1.08rem;line-height:1.7;max-width:620px;margin-bottom:1.5rem;}
.hero-premium .cta-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;}
.hero-premium .cta-row .btn{margin-top:0;}
.hero-premium .btn-ghost{border-color:rgba(255,255,255,.4);color:#fff;background:transparent;}
.hero-premium .btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff;color:#fff;}
.hero-premium .trust-bar{display:flex;gap:1.5rem;margin-top:2rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.14);flex-wrap:wrap;}
.hero-premium .trust-item{display:flex;align-items:center;gap:.5rem;font-size:.88rem;color:rgba(255,255,255,.85);font-weight:500;}
.hero-premium .trust-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#c82a47;color:#fff;font-size:11px;font-weight:700;flex-shrink:0;}
.hero-premium .hero-visual{position:relative;min-height:360px;}
.hero-card-stack{position:relative;width:320px;margin:0 auto;}
.hero-doc{position:absolute;width:300px;height:210px;border-radius:14px;background:linear-gradient(150deg,#fff,#eef4f3);box-shadow:0 24px 60px rgba(6,30,30,.55),0 6px 18px rgba(6,30,30,.32);display:flex;flex-direction:column;padding:22px;box-sizing:border-box;border:1px solid rgba(255,255,255,.6);}
.hero-doc-back{transform:rotate(-8deg);left:0;top:34px;opacity:.92;background:linear-gradient(150deg,#f4f8f8,#e6efee);}
.hero-doc-front{transform:rotate(5deg);right:0;top:0;}
.hero-doc .doc-kicker{font-size:.62rem;font-weight:800;letter-spacing:.16em;color:#b0223c;margin-bottom:8px;text-transform:uppercase;}
.hero-doc .doc-title{font-size:1.05rem;font-weight:800;color:#0a1a33;margin-bottom:14px;}
.hero-doc .doc-line{display:block;height:7px;border-radius:4px;background:linear-gradient(90deg,#0a1a3322,#0a1a3311);margin:7px 0;}
.hero-doc .doc-line.w90{width:90%;}.hero-doc .doc-line.w80{width:80%;}.hero-doc .doc-line.w70{width:70%;}.hero-doc .doc-line.w95{width:95%;}.hero-doc .doc-line.w65{width:65%;}
.hero-doc .doc-seal{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d94a63,#b0223c);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.05rem;font-weight:800;box-shadow:0 6px 16px #b0223c66;}
.hero-seal{position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#c82a47,#961b32);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.08em;line-height:1.35;text-align:center;padding:.55rem 1rem;border-radius:10px;box-shadow:0 10px 26px #b0223c73;white-space:nowrap;z-index:3;}
.hero-strip{position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,#c82a47,#e6788c,#c82a47);z-index:2;}
@media(max-width:900px){.hero-premium .hero-visual{display:none;}.hero-premium .hero-grid{grid-template-columns:1fr;}}

.subhero-premium{background:linear-gradient(135deg,#0a1a33 0%,#16325c 55%,#102547 100%);color:#fff;padding:3rem 0 4rem;position:relative;overflow:hidden;}
.subhero-premium::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:38px 38px;pointer-events:none;}
.subhero-premium::after{content:'';position:absolute;top:-40%;right:-8%;width:520px;height:520px;background:radial-gradient(circle,#d94a631f,transparent 65%);border-radius:50%;}
.subhero-premium .container{position:relative;z-index:1;max-width:1140px;margin:0 auto;padding:0 1.5rem;}
.subhero-premium .eyebrow{color:#d94a63;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.6rem;display:block;}
.subhero-premium h1{color:#fff;font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:800;line-height:1.15;margin-bottom:.75rem;}
.subhero-premium p.lead{color:rgba(255,255,255,.85);font-size:1.02rem;line-height:1.65;max-width:680px;margin-bottom:1.4rem;}
.subhero-premium .cta-row{margin-bottom:1.6rem;}
.subhero-premium .trust-bar{display:flex;gap:1.4rem;flex-wrap:wrap;padding-top:1.3rem;border-top:1px solid rgba(255,255,255,.16);}
.subhero-premium .trust-item{display:flex;align-items:center;gap:.45rem;font-size:.85rem;color:rgba(255,255,255,.85);font-weight:500;}
.subhero-premium .trust-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#c82a47;color:#fff;font-size:10px;font-weight:700;flex-shrink:0;}
.subhero-premium .hero-strip{position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,#c82a47,#d94a63,#c82a47);z-index:2;}
.subhero-premium .btn-ghost{border-color:rgba(255,255,255,.4);color:#fff;}


/* ============ Hero Anim patch ============ */
/* 视觉卡文档浮动 */
.hero-doc-back{animation:ui-docfloat 7s ease-in-out infinite;}
.hero-doc-front{animation:ui-docfloat 7s ease-in-out 1.2s infinite;}
@keyframes ui-docfloat{0%,100%{transform:rotate(-8deg) translateY(0);}50%{transform:rotate(-6deg) translateY(-9px);}}
.hero-doc-front{animation:ui-docfloat2 7s ease-in-out 1.2s infinite;}
@keyframes ui-docfloat2{0%,100%{transform:rotate(5deg) translateY(0);}50%{transform:rotate(3deg) translateY(-9px);}}
/* ISO 印章脉动 */
.hero-seal{animation:ui-sealpulse 3.2s ease-in-out infinite;}
@keyframes ui-sealpulse{0%,100%{box-shadow:0 10px 26px rgba(0,0,0,.3);}50%{box-shadow:0 10px 34px rgba(0,0,0,.42);}}
/* 背景光晕缓慢漂移 */
.hero-premium::after{animation:ui-glowdrift 14s ease-in-out infinite;}
@keyframes ui-glowdrift{0%,100%{transform:translate(0,0);}50%{transform:translate(-3%,2%);}}
/* hero 视觉卡内圆徽标微光 */
.hero-doc .doc-seal{animation:ui-sealglow 4s ease-in-out infinite;}
@keyframes ui-sealglow{0%,100%{box-shadow:0 6px 16px rgba(0,0,0,.25);}50%{box-shadow:0 6px 22px rgba(0,0,0,.38);}}
/* 底部品牌色细条流动 */
.hero-strip{background-size:200% 100%;animation:ui-strip 6s linear infinite;}
@keyframes ui-strip{0%{background-position:0% 0;}100%{background-position:200% 0;}}
@media(prefers-reduced-motion:reduce){.hero-doc-back,.hero-doc-front,.hero-seal,.hero-premium::after,.hero-doc .doc-seal,.hero-strip{animation:none;}}


/* ============ Icon Enrich patch ============ */
.ui-ico{display:inline-flex;width:46px;height:46px;border-radius:13px;align-items:center;justify-content:center;margin:0 0 .7rem;color:#fff;flex-shrink:0;background:linear-gradient(135deg,var(--accent,#2563eb),var(--primary-600,#1e40af));box-shadow:0 8px 18px rgba(37,99,235,.22);}
.ui-ico svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.ui-avatar{display:inline-flex;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;font-weight:700;font-size:1.05rem;color:#fff;flex-shrink:0;background:linear-gradient(135deg,var(--accent,#2563eb),var(--primary-700,#1e3a8a));box-shadow:0 6px 14px rgba(37,99,235,.25);}
.review-card,.testimonial-card,.testimonial-item{display:flex;gap:1rem;align-items:flex-start;}
@media(prefers-reduced-motion:reduce){.ui-ico,.ui-avatar{transition:none;}}


/* ============ Logo Marquee patch ============ */
.logo-marquee-wrap{padding:2.4rem 0;background:var(--surface-50,#f8fafc);border-block:1px solid rgba(15,23,42,.06);overflow:hidden;}
.logo-eyebrow{text-align:center;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-500,#64748b);font-weight:600;margin-bottom:1.2rem;}
.logo-marquee{display:flex;overflow:hidden;}
.logos-row{display:flex;list-style:none;margin:0;padding:.5rem 0;flex-shrink:0;min-width:max-content;}
.logo-marquee .logo-item{margin-right:3.5rem;}
.logo-marquee .logo-item{font-size:1.05rem;font-weight:700;color:var(--gray-400,#94a3b8);letter-spacing:.02em;white-space:nowrap;transition:color .3s;}
.logo-marquee .logo-item:hover{color:var(--accent,#2563eb);}
.ui-marquee{animation:ui-marquee 30s linear infinite;}
@keyframes ui-marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}


/* ============ Breadcrumb patch ============ */
.ui-breadcrumb{padding:.8rem 0;border-bottom:1px solid rgba(15,23,42,.06);background:#f8fafc;}
.ui-breadcrumb .container{max-width:1140px;margin:0 auto;padding:0 1.5rem;font-size:.85rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;}
.ui-breadcrumb a{color:var(--accent,#2563eb);text-decoration:none;font-weight:500;}
.ui-breadcrumb a:hover{text-decoration:underline;}
.ui-breadcrumb .bc-sep{color:#94a3b8;}
.ui-breadcrumb .bc-cur{color:#64748b;font-weight:600;}


/* ============ Adv & Stats patch ============ */
.adv-wrap{padding:4rem 0;background:var(--surface,#fff);}
.adv-wrap .container{max-width:1140px;margin:0 auto;padding:0 1.5rem;}
.adv-head{text-align:center;max-width:640px;margin:0 auto 2.6rem;}
.adv-head h2{font-size:2rem;color:var(--ink,#0f172a);margin:0 0 .6rem;}
.adv-head p{color:var(--gray-500,#64748b);margin:0;}
.adv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;}
.adv-card{background:var(--surface-50,#f8fafc);border:1px solid rgba(15,23,42,.06);border-radius:16px;padding:1.6rem;transition:transform .25s,box-shadow .25s;}
.adv-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(15,23,42,.10);}
.adv-ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:1rem;background:linear-gradient(135deg,var(--accent,#2563eb),var(--primary-600,#1e40af));}
.adv-card h3{font-size:1.08rem;color:var(--ink,#0f172a);margin:0 0 .4rem;}
.adv-card p{font-size:.92rem;color:var(--gray-500,#64748b);margin:0;line-height:1.55;}
.stat-band{padding:3.4rem 0;background:var(--surface-50,#f8fafc);border-block:1px solid rgba(15,23,42,.06);}
.stat-band .container{max-width:1140px;margin:0 auto;padding:0 1.5rem;}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2rem;text-align:center;}
.stat-cell .num{font-size:2.3rem;font-weight:800;line-height:1;background:linear-gradient(135deg,var(--accent,#2563eb),var(--primary-700,#1e3a8a));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.stat-cell .lab{margin-top:.5rem;color:var(--gray-500,#64748b);font-size:.9rem;}


/* ============ About enhance patch ============ */
.about-sec{padding:3.6rem 0;}
.about-sec .container{max-width:1140px;margin:0 auto;padding:0 1.5rem;}
.about-head{text-align:center;margin-bottom:2.4rem;}
.about-head h2{font-size:1.9rem;color:var(--ink,#0f172a);margin:0 0 .4rem;}
.about-head p{color:var(--gray-500,#64748b);margin:0;}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.3rem;}
.team-card{background:var(--surface,#fff);border:1px solid rgba(15,23,42,.07);border-radius:16px;padding:1.5rem;text-align:center;transition:transform .25s,box-shadow .25s;}
.team-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(15,23,42,.10);}
.team-av{width:74px;height:74px;border-radius:50%;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.6rem;font-weight:700;background:linear-gradient(135deg,var(--accent,#2563eb),var(--primary-600,#1e40af));}
.team-card h3{font-size:1.05rem;margin:0 0 .2rem;color:var(--ink,#0f172a);}
.team-card .role{font-size:.83rem;color:var(--gray-500,#64748b);}
.timeline{position:relative;max-width:760px;margin:0 auto;padding-left:2rem;}
.timeline::before{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--accent,#2563eb),transparent);}
.tl-item{position:relative;padding:0 0 1.6rem 1.4rem;}
.tl-item::before{content:"";position:absolute;left:-1.55rem;top:.35rem;width:12px;height:12px;border-radius:50%;background:var(--accent,#2563eb);border:3px solid #fff;box-shadow:0 0 0 2px var(--accent,#2563eb);}
.tl-year{font-weight:800;font-size:1.05rem;color:var(--accent,#2563eb);}
.tl-item p{color:var(--gray-500,#64748b);margin:.3rem 0 0;font-size:.92rem;line-height:1.55;}
.cert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;}
.cert-badge{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:1.3rem;text-align:center;font-weight:700;color:var(--ink,#0f172a);box-shadow:0 4px 14px rgba(15,23,42,.05);}
.cert-badge small{display:block;color:var(--gray-500,#64748b);font-weight:500;font-size:.75rem;margin-top:.3rem;}


/* ============ Pricing enhance patch ============ */
.deal-bar{padding:1.6rem 0;background:linear-gradient(135deg,var(--accent,#2563eb),var(--primary-700,#1e3a8a));color:#fff;}
.deal-bar .container{max-width:1140px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.deal-text h2{margin:0;font-size:1.35rem;}
.deal-text p{margin:.3rem 0 0;font-size:.9rem;opacity:.9;}
.countdown{display:flex;gap:.6rem;}
.cd-cell{background:rgba(255,255,255,.16);backdrop-filter:blur(4px);border-radius:10px;min-width:60px;padding:.5rem .4rem;text-align:center;}
.cd-cell b{display:block;font-size:1.5rem;line-height:1;font-variant-numeric:tabular-nums;}
.cd-cell span{font-size:.68rem;opacity:.85;text-transform:uppercase;letter-spacing:.05em;}
.deal-cta{background:#fff;color:var(--primary-700,#1e3a8a);padding:.75rem 1.4rem;border-radius:10px;font-weight:700;text-decoration:none;transition:transform .2s;white-space:nowrap;}
.deal-cta:hover{transform:translateY(-2px);}


/* ============ Contact enhance patch ============ */
.book-wrap{padding:3.6rem 0;background:var(--surface-50,#f8fafc);}
.book-wrap .container{max-width:1140px;margin:0 auto;padding:0 1.5rem;display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;}
.book-head h2{font-size:1.8rem;color:var(--ink,#0f172a);margin:0 0 .4rem;}
.book-head p{color:var(--gray-500,#64748b);margin:0 0 1.4rem;}
.book-form,.survey{background:#fff;border:1px solid rgba(15,23,42,.07);border-radius:16px;padding:1.6rem;}
.book-form h3,.survey h3{font-size:1.1rem;margin:0 0 1rem;color:var(--ink,#0f172a);}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:.9rem;}
.frow input,.frow select{width:100%;padding:.7rem .8rem;border:1px solid rgba(15,23,42,.15);border-radius:9px;font-size:.92rem;outline:none;box-sizing:border-box;}
.frow input:focus,.frow select:focus{border-color:var(--accent,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.12);}
.field label{display:block;font-size:.8rem;font-weight:600;color:#475569;margin-bottom:.3rem;}
.qs{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;}
.qs label{display:flex;gap:.5rem;align-items:center;font-size:.88rem;color:#334155;padding:.5rem .6rem;border:1px solid rgba(15,23,42,.1);border-radius:9px;cursor:pointer;transition:background .2s,border .2s;}
.qs label:hover{border-color:var(--accent,#2563eb);background:var(--surface-50,#f8fafc);}
.qs input{accent-color:var(--accent,#2563eb);}
.book-btn{width:100%;margin-top:1.1rem;padding:.8rem 0;border:none;border-radius:10px;color:#fff;font-weight:600;cursor:pointer;background:linear-gradient(135deg,var(--accent,#2563eb),var(--primary-700,#1e3a8a));}
@media(max-width:820px){.book-wrap .container{grid-template-columns:1fr;}}

/* --- cookie consent banner --- */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999;background:var(--navy-900,#0a1a33);color:#fff;border-radius:var(--radius-md,10px);box-shadow:var(--shadow-lg,0 8px 30px rgba(10,26,51,.12));}
.cookie-banner .cb-inner{max-width:960px;margin:0 auto;padding:14px 20px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cookie-banner p{margin:0;font-size:.92rem;color:var(--navy-100,#d4e0f0)}
.cookie-banner a{color:#fff;text-decoration:underline}
.cookie-banner .cb-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-banner .btn-sm{padding:8px 16px;font-size:.9rem;border-radius:var(--radius-sm,6px);cursor:pointer}
.cookie-banner .btn-primary{background:var(--crimson-600,#b0223c);border:none;color:#fff}
.cookie-banner .btn-outline{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff}
.cookie-banner[hidden]{display:none}
.cb-check{display:flex;gap:8px;align-items:flex-start;margin:10px 0;font-size:.95rem}
.cb-check input{margin-top:4px}

/* ===== S06 补齐模块（南英格兰 navy） ===== */
.pull-quote{max-width:860px;margin:0 auto;padding:34px 44px;text-align:center}
.pull-quote .pq-mark{font-size:64px;line-height:1;color:#4a95d6;font-family:Georgia,serif}
.pull-quote p{font-size:24px;font-weight:600;color:#12223c;line-height:1.6;margin:8px 0}
.pull-quote cite{font-style:normal;color:#64748b;font-size:14px}
.back-to-top{position:fixed;right:22px;bottom:26px;width:46px;height:46px;border-radius:50%;background:#12223c;color:#fff;border:1px solid #4a95d6;cursor:pointer;font-size:20px;z-index:900;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:.3s;box-shadow:0 4px 14px rgba(18,34,60,.35)}
.back-to-top.show{opacity:1;pointer-events:auto}
.live-chat{position:fixed;left:22px;bottom:26px;z-index:900;display:flex;flex-direction:column;gap:10px}
.lc-btn{width:54px;height:54px;border-radius:50%;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.lc-wa{background:#25d366}
.lc-chat{background:linear-gradient(135deg,#1a3055,#4a95d6)}
.chatpop{position:fixed;left:22px;bottom:92px;z-index:950;width:300px;background:#fff;border:1px solid #e2e8f0;border-top:4px solid #4a95d6;border-radius:12px;padding:20px;display:none;box-shadow:0 12px 30px rgba(18,34,60,.2)}
.chatpop.open{display:block}
.chatpop h4{margin:0 0 6px;color:#12223c}
.chatpop p{margin:0 0 12px;font-size:13px;color:#64748b}
.chatpop input,.chatpop textarea{width:100%;box-sizing:border-box;padding:11px;border:1px solid #cfd5dd;border-radius:8px;margin-bottom:10px;font-size:14px}
.chatpop .btn{width:100%}

/* hero real photo */
.hero .hero-bg,.hero-premium .hero-bg,.screen--hero .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;display:block;}
.hero .hero-shade,.hero-premium .hero-shade,.screen--hero .hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(5,14,31,.85) 0%,rgba(5,14,31,.5) 55%,rgba(5,14,31,.15) 100%);}
.hero .container,.hero .container>*,.hero .wrap,.hero .hero-grid,.hero .hero-copy,.hero .hero-inner,.hero-premium .container,.hero-premium .hero-grid,.screen--hero .container{position:relative;z-index:2;}

/* ===== MODULE COMPLETION LAYER (Plan-A 2026-09-16) ===== */
.lx-testimonials .testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.testimonial-card{background:#fff;border:1px solid #e3e9f2;border-top:3px solid #c9a227;border-radius:12px;padding:20px}
.testimonial-card .t-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.t-avatar{width:40px;height:40px;border-radius:50%;background:#0a1a33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.t-name{display:block;font-weight:700;color:#0a1a33;font-size:14px}
.t-role{display:block;color:#64748b;font-size:12.5px}
.star-rating{color:#f5a623;letter-spacing:2px;margin-bottom:6px}
.testimonial-card p{color:#475569;font-size:13.5px;margin:0}
.lx-pullquote .pull-quote{margin:0;padding:26px 30px;border-left:4px solid #c9a227;background:#f8fafc;border-radius:0 12px 12px 0}
.pull-quote p{font-size:19px;color:#0a1a33;font-weight:600;margin:0 0 8px}
.pull-quote cite{color:#64748b;font-style:normal;font-size:13px}
.lx-metrics .metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.metric-card{background:linear-gradient(135deg,#0a1a33,#1d3d6b);color:#fff;border-radius:12px;padding:18px;text-align:center}
.metric-num{font-size:26px;font-weight:800;color:#ffd9a8}
.metric-label{font-size:12.5px;opacity:.85;margin-top:4px}
.lx-gallery .gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gallery-item{margin:0}
.g-ph{height:150px;border-radius:10px;background:linear-gradient(135deg,#dbe4f0,#b9c9de)}
.g-ph.g2{background:linear-gradient(135deg,#f7e3d8,#eeceb9)}.g-ph.g3{background:linear-gradient(135deg,#e2e8f0,#cbd5e1)}
.gallery-item figcaption{font-size:12.5px;color:#64748b;margin-top:6px}
.lx-baseinfo .baseinfo-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:#f8fafc;border:1px solid #e3e9f2;border-radius:12px;padding:16px}
.bi-k{display:block;font-size:11.5px;text-transform:uppercase;color:#64748b;letter-spacing:.5px}
.bi-v{display:block;font-weight:700;color:#0a1a33;font-size:14px;margin-top:2px}
.lx-tabs .tab-bar{display:flex;gap:8px;margin-bottom:12px}
.tab-btn{border:1px solid #dbe2ee;background:#fff;color:#0a1a33;padding:8px 16px;border-radius:20px;cursor:pointer;font-size:13.5px}
.tab-btn.active{background:#0a1a33;color:#fff;border-color:#0a1a33}
.tab-panel{display:none;background:#fff;border:1px solid #e3e9f2;border-radius:12px;padding:18px;color:#475569;font-size:14px}
.tab-panel.active{display:block}
.lx-custom .custom-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.custom-opt{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid #e3e9f2;border-radius:10px;padding:12px 14px;font-size:13.5px;color:#0a1a33}
.lx-pricing .tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tier-card{position:relative;background:#fff;border:1px solid #e3e9f2;border-radius:14px;padding:22px;text-align:center}
.tier-card.featured{border-color:#c9a227;box-shadow:0 10px 30px rgba(0,0,0,.10)}
.tier-card h3{color:#0a1a33;margin:0 0 6px}
.tier-price{font-size:30px;font-weight:800;color:#c9a227}
.tier-price span{font-size:13px;color:#64748b;font-weight:400}
.tier-card ul{list-style:none;padding:0;margin:12px 0 16px;color:#475569;font-size:13px}
.tier-card ul li{padding:5px 0;border-bottom:1px dashed #eef2f7}
.lx-compare .compare-wrap{overflow-x:auto}
.compare-table{width:100%;border-collapse:collapse;font-size:13.5px}
.compare-table th,.compare-table td{border:1px solid #e3e9f2;padding:10px 12px;text-align:left}
.compare-table th{background:#0a1a33;color:#fff}
.compare-table td:first-child{font-weight:600;color:#0a1a33}
.lx-demo .demo-box{display:grid;grid-template-columns:1.1fr 1fr;gap:22px;align-items:center;background:#fff;border:1px solid #e3e9f2;border-radius:14px;padding:22px}
.demo-screen{background:#f1f5f9;border-radius:10px;padding:18px;min-height:150px}
.demo-line{height:10px;border-radius:5px;background:#cbd5e1;margin:8px 0}
.demo-line.w60{width:60%}.demo-line.w80{width:80%}.demo-line.w40{width:40%}
.demo-cta{margin-top:10px;font-size:12px;color:#c9a227;font-weight:700}
.demo-copy h3{color:#0a1a33;margin:0 0 8px}.demo-copy p{color:#475569;font-size:13.5px}
.lx-countdown .cd-box{display:flex;justify-content:space-between;align-items:center;background:#fdf1ec;border:1px solid #f3c9ba;border-radius:12px;padding:14px 18px}
.cd-label{color:#0a1a33;font-weight:600;font-size:14px}
.cd-timer{color:#c9a227;font-weight:700;font-size:14px}
.lx-casecards .case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.case-card{background:#fff;border:1px solid #e3e9f2;border-top:3px solid #0a1a33;border-radius:12px;padding:18px}
.case-card h3{color:#0a1a33;font-size:15.5px;margin:8px 0 6px}
.case-card p{color:#64748b;font-size:13px;margin:0}
.lx-casedetail .cd-card{background:#fff;border:1px solid #e3e9f2;border-radius:14px;padding:22px}
.cd-meta{color:#c9a227;font-size:12.5px;font-weight:700;margin:6px 0 10px}
.lx-team .team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.team-card{text-align:center;background:#fff;border:1px solid #e3e9f2;border-radius:12px;padding:18px}
.team-card img{width:84px;height:84px;border-radius:50%;object-fit:cover}
.team-card h3{color:#0a1a33;margin:10px 0 2px;font-size:15px}
.team-card p{color:#64748b;font-size:12.5px;margin:0}
.lx-requestdemo .rd-box{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(135deg,#0a1a33,#1d3d6b);border-radius:14px;padding:22px 26px;color:#fff}
.rd-box h3{margin:0 0 4px;color:#fff}.rd-box p{margin:0;opacity:.85;font-size:13.5px}
.rd-box a.calendar-book{color:#ffd9a8;font-size:13px}
.lx-toc{background:#f8fafc;border-bottom:1px solid #e3e9f2;padding:10px 0}
.toc-title{font-weight:700;color:#0a1a33;font-size:13px;margin-right:10px}
.lx-toc ol{display:inline;list-style:none;margin:0;padding:0}
.lx-toc li{display:inline;margin-right:14px;font-size:13px}
.lx-toc a{color:#c9a227;text-decoration:none}
.lx-dl .dl-box{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:2px dashed #c9a227;border-radius:14px;padding:20px 24px}
.dl-box h3{color:#0a1a33;margin:0 0 4px}.dl-box p{margin:0;color:#64748b;font-size:13.5px}
.lx-blog .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.blog-card{background:#fff;border:1px solid #e3e9f2;border-radius:12px;padding:18px}
.blog-card h3{color:#0a1a33;font-size:15px;margin:8px 0 6px}
.blog-card p{color:#94a3b8;font-size:12.5px;margin:0}
.lx-stats .stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;text-align:center}
.stat b{display:block;font-size:26px;color:#0a1a33;font-weight:800}
.stat span{color:#64748b;font-size:12.5px}
.lx-marquee{overflow:hidden;border-block:1px solid #e3e9f2;padding:12px 0;background:#fff}
.marquee-track{display:flex;white-space:nowrap;animation:lxmq 22s linear infinite;color:#64748b;font-weight:600;font-size:13.5px}
.marquee-track span{margin-right:34px}
@keyframes lxmq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.lx-badges{display:flex;gap:6px;margin-bottom:8px}
.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;background:#e2e8f0;color:#0a1a33}
.badge-new{background:#dcfce7;color:#166534}
.badge-hot{background:#ffedd5;color:#9a3412}
.lx-btt{position:fixed;right:22px;bottom:88px;width:44px;height:44px;border-radius:50%;background:#0a1a33;color:#fff;border:none;font-size:18px;cursor:pointer;opacity:0;pointer-events:none;transition:.25s;z-index:60}
.lx-btt.on{opacity:.9;pointer-events:auto}
.lx-chat{position:fixed;right:22px;bottom:28px;width:52px;height:52px;border-radius:50%;background:#c9a227;color:#fff;border:none;font-size:14px;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.25);z-index:60}
.lx-chat-panel{position:fixed;right:22px;bottom:92px;width:290px;background:#fff;border:1px solid #e3e9f2;border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.18);padding:16px;display:none;z-index:60}
.lx-chat-panel.open{display:block}
.lx-chat-panel h4{margin:0 0 6px;color:#0a1a33}
.lx-chat-panel p{margin:0 0 10px;color:#64748b;font-size:13px}
.lx-modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;z-index:70}
.lx-modal.open{display:flex}
.lx-modal-box{background:#fff;border-radius:16px;max-width:420px;width:92%;padding:26px;position:relative}
.lx-modal-box h3{margin:0 0 6px;color:#0a1a33}
.lx-modal-box p{margin:0 0 14px;color:#64748b;font-size:13.5px}
.lx-modal-box input{width:100%;box-sizing:border-box;border:1px solid #dbe2ee;border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:10px}
.lx-modal-x{position:absolute;right:12px;top:10px;border:none;background:none;font-size:18px;cursor:pointer;color:#94a3b8}
.lx-timeline .timeline{list-style:none;margin:0;padding:0}
.lx-timeline .timeline li{position:relative;padding:0 0 18px 28px;border-left:2px solid #c9a227;margin-left:8px}
.lx-timeline .timeline li:last-child{border-left-color:transparent}
.lx-timeline .timeline li:before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:#c9a227}
.lx-timeline .timeline b{color:#0a1a33;margin-right:8px}
.lx-timeline .timeline span{color:#64748b;font-size:13.5px}
@media (max-width:900px){.lx-testimonials .testimonial-grid,.lx-gallery .gallery-grid,.lx-metrics .metric-row,.lx-baseinfo .baseinfo-row,.lx-pricing .tier-grid,.lx-casecards .case-grid,.lx-team .team-grid,.lx-blog .blog-grid,.lx-stats .stats-row{grid-template-columns:repeat(2,1fr)}.lx-demo .demo-box,.lx-custom .custom-grid{grid-template-columns:1fr}}
@media (max-width:600px){.lx-testimonials .testimonial-grid,.lx-metrics .metric-row,.lx-pricing .tier-grid,.lx-casecards .case-grid,.lx-team .team-grid,.lx-blog .blog-grid,.lx-stats .stats-row{grid-template-columns:1fr}}
/* ===== END MODULE COMPLETION LAYER ===== */

/* ===== S06 补充组件样式 (navy/crimson) ===== */
.section-title{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;color:var(--navy-900);line-height:1.15;letter-spacing:-.015em;text-align:center;margin-bottom:1.6rem}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.gallery-card{background:var(--white);border:1px solid var(--gray-200);border-radius:14px;padding:18px;text-align:center;transition:transform .2s,box-shadow .2s}
.gallery-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px rgba(10,26,51,.1)}
.gallery-visual{height:120px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy-50),var(--cream));border-radius:10px;margin-bottom:12px}
/* S06 emoji fix: removed doc-icon badge - .doc-icon{font-size:44px;line-height:1} */
.gallery-caption{font-weight:700;color:var(--navy-900);font-size:.98rem}
.gallery-caption small{display:block;color:var(--gray-500);font-weight:400;font-size:.82rem;margin-top:3px}
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.process-card{background:var(--white);border:1px solid var(--gray-200);border-radius:14px;padding:22px;text-align:center}
.process-card .p-num{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--crimson-600);background:var(--crimson-50);padding:4px 10px;border-radius:20px;margin-bottom:10px}
.process-card .ui-ico{display:flex;justify-content:center;margin:8px 0;color:var(--navy-600)}
.process-card .ui-ico svg{width:34px;height:34px}
.process-card h3{color:var(--navy-900);font-size:1.05rem;margin:6px 0}
.process-card p{color:var(--gray-600);font-size:.9rem;line-height:1.6;margin:0}
.bi-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:18px 0}
.bi-item{display:flex;justify-content:space-between;align-items:center;background:var(--bg-alt);border:1px solid var(--border-light);border-radius:10px;padding:10px 14px}
.bi-k{font-weight:700;color:var(--navy-700);font-size:.86rem}
.bi-v{color:var(--gray-600);font-size:.9rem}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.stat-card{background:var(--white);border:1px solid var(--gray-200);border-radius:14px;padding:20px;text-align:center}
.stat-icon{display:flex;justify-content:center;color:var(--crimson-600);margin-bottom:6px}
.stat-value{font-size:2rem;font-weight:800;color:var(--navy-900);display:block}
.stat-label{color:var(--gray-500);font-size:.88rem;display:block;margin-top:2px}
.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.mini-card{display:block;background:var(--white);border:1px solid var(--gray-200);border-radius:10px;padding:12px 14px;color:var(--navy-800);font-weight:600;text-decoration:none;font-size:.92rem;transition:all .2s}
.mini-card:hover{border-color:var(--crimson-500);color:var(--crimson-600);box-shadow:0 6px 16px rgba(201,42,71,.12)}
.flogo-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}
.flogo-item{background:var(--white);border:1px solid var(--gray-200);border-radius:10px;padding:10px 16px;color:var(--gray-500);font-weight:700;font-size:.9rem;letter-spacing:.02em}
.cta-banner{background:linear-gradient(135deg,var(--navy-800),var(--navy-600));color:var(--white);padding:2.2rem;border-radius:16px;text-align:center}
.cta-banner h2{color:var(--white);margin:0 0 8px}
.cta-banner p{color:var(--navy-100);margin:0}
.cta-banner a{color:var(--gold-400);font-weight:700}
.screen{display:block;width:100%;border-radius:14px;border:1px solid var(--gray-200);box-shadow:0 8px 30px rgba(10,26,51,.12)}

/* ===== S06 第二批组件样式 ===== */
.spec-table-wrap{margin:20px 0;overflow-x:auto;background:var(--white);border:1px solid var(--gray-200);border-radius:14px}
.spec-table{width:100%;border-collapse:collapse;font-size:.92rem}
.spec-table th{background:var(--navy-50);color:var(--navy-900);text-align:left;padding:12px 14px;font-weight:700;border-bottom:2px solid var(--gray-200)}
.spec-table td{padding:10px 14px;border-top:1px solid var(--gray-100);color:var(--gray-600)}
.spec-table tr:nth-child(even) td{background:var(--gray-50)}
.section-subtitle{font-size:clamp(1.2rem,2.4vw,1.7rem);font-weight:700;color:var(--navy-800);text-align:center;margin-bottom:1.2rem}
.flogos{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}
.related-card{display:flex;justify-content:space-between;align-items:center;background:var(--white);border:1px solid var(--gray-200);border-radius:12px;padding:14px 16px;color:var(--navy-800);font-weight:600;text-decoration:none;transition:all .2s}
.related-card:hover{border-color:var(--crimson-500);box-shadow:0 6px 16px rgba(201,42,71,.1)}
.page-badges{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;justify-content:center}
.page-badges span{background:var(--navy-50);color:var(--navy-800);border:1px solid var(--gray-200);padding:4px 12px;border-radius:20px;font-size:.82rem;font-weight:600}
.sub-hero-text{color:var(--gray-600);font-size:1.05rem;line-height:1.6;max-width:720px;margin:14px auto 0}
.subhero-cta{display:flex;gap:12px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.content-grid{display:grid;grid-template-columns:1fr;gap:28px}
.prose{max-width:760px;color:var(--gray-700);line-height:1.75;font-size:1rem}
.prose h2{color:var(--navy-900);margin:1.6rem 0 .6rem}
.prose h3{color:var(--navy-800);margin:1.3rem 0 .5rem}
.prose p{margin:0 0 1rem}
.featured-strip{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:18px 0}
.featured-strip>*{background:var(--bg-alt);border:1px solid var(--border-light);border-radius:10px;padding:10px 14px;font-size:.9rem;color:var(--navy-800);font-weight:600}
.g1{display:grid;grid-template-columns:1fr;gap:20px}
.configuration{margin:20px 0}
.request-demo{display:inline-block;background:var(--crimson-600);color:#fff;padding:12px 22px;border-radius:10px;font-weight:700;text-decoration:none;transition:background .2s}
.request-demo:hover{background:var(--crimson-700)}

/* ===== S06 第三批少量组件样式 ===== */
.side-card{background:var(--white);border:1px solid var(--gray-200);border-radius:14px;padding:18px;margin-top:24px}
.side-card h3{color:var(--navy-900);font-size:1.05rem;margin-bottom:12px}
.ft-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.subhero-badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}
.subhero-badges span{background:var(--navy-50);color:var(--navy-800);border:1px solid var(--gray-200);padding:4px 12px;border-radius:20px;font-size:.82rem;font-weight:600}
.hub-links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.hub-links li a{display:inline-block;background:var(--bg-alt);border:1px solid var(--border-light);border-radius:8px;padding:6px 12px;color:var(--navy-800);text-decoration:none;font-size:.88rem}
.vx-card{background:var(--white);border:1px solid var(--gray-200);border-radius:14px;padding:18px}
.vx-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.vx-title{font-weight:800;font-size:.82rem;letter-spacing:.1em;color:var(--navy-700)}
.demo-preview{border:1px solid var(--gray-200);border-radius:14px;overflow:hidden}

/* ===== S06 零星组件样式 ===== */
.vx-art{background:var(--navy-50);border-radius:10px;padding:10px;margin:8px 0}
.vx-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.team-photo{width:100%;border-radius:12px;object-fit:cover;border:1px solid var(--gray-200)}
.case-study{background:var(--white);border:1px solid var(--gray-200);border-radius:14px;padding:20px}
.lx-filterwrap{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:20px}
.lx-filter{background:var(--white);border:1px solid var(--gray-200);border-radius:20px;padding:8px 16px;font-size:.88rem;color:var(--navy-800);cursor:pointer}
.page-hero{background:linear-gradient(135deg,var(--navy-900),var(--navy-600));color:var(--white);padding:3.5rem 0}
.page-hero h1{color:var(--white)}
.gated{position:relative}

/* ===== S06 末尾零星 class ===== */
.hero-vx-S06{background:linear-gradient(135deg,var(--navy-900),var(--navy-600));color:var(--white);padding:3.5rem 0}
.hero-vx-S06 h1{color:var(--white)}
.cd-d{font-size:1.6rem;font-weight:800;color:var(--navy-900)}
.vx-live{color:var(--crimson-500);font-size:.9rem}

/* ===== S06 补图配套样式 ===== */
.gallery-visual{position:relative}
/* S06 emoji fix: removed .gallery-visual .doc-icon badge */
.process-card{overflow:hidden;padding-top:0}
.process-img{width:100%;height:110px;object-fit:cover;margin:-22px 0 12px;border-radius:14px 14px 0 0;display:block}

/* ===== S06 评论修复：卡片纵向 + 真实头像 ===== */
.testimonial-card{display:flex;flex-direction:column;align-items:stretch;gap:0}
.t-avatar{overflow:hidden}
.t-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}

.testimonial-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}

/* ===== 卡片满行修复（S06 全站 · 2026-09-21） =====
   目标：固定列数下卡片数不能整除列数时，末行出现右侧空白。
   方案：与 S02-S05 已批准修法一致——末行横向跨列补满 + footer 补全响应式断点。 ===== */

/* 1) footer-grid：6 栏（brand + 5 链接栏）桌面锁 6 列全满；平板 brand/末栏跨满；
      手机原生单列（本站此前完全没有 footer 响应式断点，390px 曾挤成 5 列 46px） */
@media (min-width: 1025px) {
  .footer-grid { grid-template-columns: 1.4fr repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 601px) and (max-width: 1024px) {
  .footer-grid { grid-template-columns: 1.4fr repeat(5, minmax(0, 1fr)); }
  .footer-grid > .footer-brand-col { grid-column: auto; }
  .footer-grid > .footer-col:last-child { grid-column: auto; }
}
@media (max-width: 600px) {
  .footer-grid { grid-template-columns: 1.4fr repeat(5, minmax(0, 1fr)); }
}

/* 2) lx 系 3 卡容器（testimonial/blog/tier/case）：601-900 两列断点末卡跨满 */
@media (min-width: 601px) and (max-width: 900px) {
  .lx-testimonials .testimonial-grid:not(:has(> :nth-child(4))) > :nth-child(3):last-child,
  .lx-blog .blog-grid:not(:has(> :nth-child(4))) > :nth-child(3):last-child,
  .lx-pricing .tier-grid:not(:has(> :nth-child(4))) > :nth-child(3):last-child,
  .lx-casecards .case-grid:not(:has(> :nth-child(4))) > :nth-child(3):last-child { grid-column: 1 / -1; }
}
/* <=600 时 lx gallery 仍保持两列（600 断点未含 gallery），3 卡末卡跨满 */
@media (max-width: 600px) {
  .lx-gallery .gallery-grid:not(:has(> :nth-child(4))) > :nth-child(3):last-child { grid-column: span 2; }
}

/* 3) plain gallery-grid（auto-fit 220px）：601-900 下 3 卡末卡跨满、4 卡末卡跨满 */
@media (min-width: 601px) and (max-width: 900px) {
  .gallery-grid:not(:has(> :nth-child(4))) > :nth-child(3):last-child,
  .gallery-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(4):last-child { grid-column: 1 / -1; }
}

/* 4) related-grid（2~31 卡混合）：
      601-900 两列：奇数位末卡跨满；>=901 三列：3k+1 末卡跨满、3k+2 末卡跨 2 列 */
@media (min-width: 601px) and (max-width: 900px) {
  .related-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 901px) {
  .related-grid > :last-child:nth-child(3n+1) { grid-column: 1 / -1; }
  .related-grid > :last-child:nth-child(3n+2) { grid-column: span 2; }
}

/* 5) stats-grid 4 卡：601-900 三列下末卡跨满（>900 空轨视觉行满） */
@media (min-width: 601px) and (max-width: 900px) {
  .stats-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(4):last-child { grid-column: 1 / -1; }
}


/* 7) ft-form 表单行（2 输入+1 按钮）：>=601 锁 3 列一行满 */
@media (min-width: 601px) {
  .ft-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* 8) cert-grid / stat-grid 4 卡：601-900 末卡跨满 */
@media (min-width: 601px) and (max-width: 900px) {
  .cert-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(4):last-child,
  .stat-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(4):last-child { grid-column: 1 / -1; }
}

/* 9) 96 页模板匿名内联容器：minmax(200px) 4 卡 601-900 末卡跨满；minmax(220px) 3 卡末卡跨满 */
@media (min-width: 601px) and (max-width: 900px) {
  div[style*="minmax(200px,1fr)"]:not(.ft-form) > :nth-child(4):last-child,
  div[style*="minmax(220px,1fr)"] > :nth-child(3):last-child { grid-column: 1 / -1; }
}

/* --- S06 v2 补充：901-1100 过渡区与 ft-form/mini-grid 修正 --- */
/* a) adv/process/team 4 卡：601-1100 多列下末卡跨满 */
@media (min-width: 601px) and (max-width: 1100px) {
  .adv-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(4):last-child,
  .process-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(4):last-child,
  .team-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(4):last-child { grid-column: 1 / -1; }
}
/* b) team-grid team-photo 3 卡变体：601-900 两列末卡跨满 */
@media (min-width: 601px) and (max-width: 900px) {
  .team-grid:not(:has(> :nth-child(4))) > :nth-child(3):last-child { grid-column: 1 / -1; }
}
/* c) ft-form：按钮占末行整行（footer 内表单容器窄，3 列锁不下） */
.ft-form > :last-child { grid-column: 1 / -1; }
/* d) mini-grid：锁 4 列（4x2 全区间满行；span 方案已撤销） */
@media (min-width: 601px) {
  .mini-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* e) related-grid 4 卡：601-900 扩展（内联 minmax(180) 变体 3 列 3+1） */
@media (min-width: 601px) and (max-width: 900px) {
  .related-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) > :nth-child(4):last-child { grid-column: 1 / -1; }
}
/* f) 匿名内联容器：minmax(200) 4 卡扩到 601-1200；minmax(220) 3 卡扩到 501-900 */
@media (min-width: 601px) and (max-width: 1200px) {
  div[style*="minmax(200px,1fr)"]:not(.ft-form) > :nth-child(4):last-child { grid-column: 1 / -1; }
}
@media (min-width: 501px) and (max-width: 900px) {
  div[style*="minmax(220px,1fr)"] > :nth-child(3):last-child { grid-column: 1 / -1; }
}

/* --- S06 v4：模板匿名 4 卡容器（minmax 200/220/250px）601-1200 末卡跨满 --- */
@media (min-width: 601px) and (max-width: 1200px) {
  div[style*="minmax(220px,1fr)"] > :nth-child(4):last-child,
  div[style*="minmax(250px,1fr)"] > :nth-child(4):last-child { grid-column: 1 / -1; }
}

/* ===== FEATURE CARD GRID + UI-ICO FIX (2026-09-22) ===== */
.lx-featurecards .container{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.lx-featurecards .smooth-card{position:relative;display:block}
.lx-featurecards .smooth-card h3{margin:10px 0 6px;font-size:1.05rem}
.ui-ico-wrap,.ui-ico{width:40px;height:40px;display:inline-block}
.ui-ico{color:#c9a227;stroke:#c9a227;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ui-ico circle,.ui-ico path{vector-effect:non-scaling-stroke}
.lx-featurecards .smooth-card .ui-ico-wrap{margin-bottom:2px}
@media (max-width:900px){.lx-featurecards .container{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.lx-featurecards .container{grid-template-columns:1fr}}
/* ===== END FEATURE CARD GRID + UI-ICO FIX ===== */

/* === Card media images (S06 / 2026-09-24) ===
   ui-ico 线条图标 -> assets/card-images 真实图片。
   .smooth-card 的 padding 为 1.75rem（site.css:697），故横幅用 -3.5rem 左右负边距贴齐卡片两侧、
   -1.75rem 上边距贴齐卡片顶部（无需改 padding-top；卡片 overflow:hidden + radius 16px 负责裁角）。
   a.card-link.smooth-card 原为 inline-flex 横排（图标/标题/正文挤在一行），此处回归纵向卡片。 */
.smooth-card.card-link{display:block;}
.smooth-card .card-media{display:block;margin:-1.75rem -1.75rem 1rem;background:#eef2f7;overflow:hidden;}
.smooth-card .card-media img{display:block;width:100%;height:150px;object-fit:cover;}
.smooth-card.text-center>.card-media+div{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--crimson-100),var(--crimson-50));color:var(--crimson-700);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:1.05rem;margin-bottom:.75rem;}
/* 只改观感（尺寸/去渐变/裁角），不动 display 与 margin —— 交给 .process-card .ui-ico{display:flex;justify-content:center}
   与 .ui-ico{display:inline-block} 各自决定排布，避免 process-card 图标与 STEP 徽章挤到同一行。 */
.ui-ico.ui-ico-img{width:46px;height:46px;border-radius:12px;background:none;box-shadow:none;overflow:hidden;}
.ui-ico.ui-ico-img img{display:block;width:46px;height:46px;object-fit:cover;border-radius:12px;}
/* === END Card media images === */


/* S06: grid-4 卡片区块 4 卡一行，末卡不跨满 */
.related-grid.grid-4 > :last-child{ grid-column:auto !important; }


/* S06: 评价区横排 3 卡一行 + 真人头像圆形 */

.review-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }

@media(max-width:900px){ .review-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

@media(max-width:600px){ .review-grid{ grid-template-columns:1fr; } }

.review-grid .ui-avatar{ width:52px; height:52px; overflow:hidden; }

.review-grid .ui-avatar img{ width:100%; height:100%; object-fit:cover; border-radius:50%; }

/* S06 nav-collapse: fold nav on narrow viewports to kill horizontal overflow */
@media (max-width:1180px){.header-inner{position:relative;}
.mobile-menu-toggle{display:flex;}
.main-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:#fff;box-shadow:0 14px 30px rgba(15,23,42,.14);border-top:1px solid rgba(15,23,42,.08);padding:.25rem 1.2rem 1rem;max-height:80vh;overflow-y:auto;z-index:999;}
.main-nav.mobile-open{display:flex;}
.main-nav .nav-item{width:100%;}
.main-nav .nav-link{width:100%;padding:.85rem .25rem;justify-content:space-between;background:none;}
.main-nav .mega-menu{position:static;top:auto;left:auto;transform:none;min-width:0;width:100%;box-shadow:none;border:none;border-radius:0;background:transparent;padding:.15rem 0 .5rem .75rem;opacity:1;visibility:visible;display:none;}
.main-nav .nav-item.open .mega-menu{display:block;}
.main-nav .mega-menu-grid{grid-template-columns:1fr;gap:.25rem;}
.main-nav .mega-menu-col{margin-bottom:.5rem;}
}

/* S06 review-grid responsive: 1180px 以下 2 列，避免三列挤压导致文字竖排 */
@media (max-width:1180px){ .review-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .review-grid{ grid-template-columns:1fr; } }

/* S06 review-card fix: avatar left, quote body right (grid) — 修复四子元素横排导致的五星/引语竖排 */
.review-card{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;align-items:start;}
.review-card .ui-avatar{grid-row:1/4;}
.review-card .star-rating{grid-column:2;}
.review-card p{grid-column:2;}
.review-card > div:last-child{grid-column:2;}

/* S06 logo-marquee fullwidth: 走马灯内容占满整行，左右不留白 */
.logo-marquee-wrap .container{max-width:none;padding-left:0;padding-right:0;}
.logo-marquee-wrap{padding-left:0!important;padding-right:0!important;}
.logo-marquee-wrap .logo-eyebrow{text-align:center;}

.adv-card .adv-ico:has(.ui-img){width:auto;height:auto;background:none;display:block;padding:0;margin-bottom:14px;border-radius:0}
.adv-card .adv-ico .ui-img{width:100%;height:150px;object-fit:cover;border-radius:10px;display:block}

/* === mobile horizontal overflow guard (20260926) === */
html,body{max-width:100%;overflow-x:hidden}
img{max-width:100%;height:auto}
@media (max-width:640px){
  .brand{max-width:calc(100vw - 84px);min-width:0;flex-wrap:nowrap}
  .brand-text{min-width:0;overflow:hidden}
  .brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .brand-tagline{display:none}
  .lx-marquee{overflow:hidden;max-width:100vw}
}

/* === lingomere logo rollout 2026-09-28 === */
a.brand, header .brand, .main-header .brand, .site-header .brand, .m-hdr .brand {
  max-width: none !important;
  overflow: visible !important;
  white-space: nowrap !important;
}
.brand-logo, .brand .mark, .brand .lg, .brand .brand-mark {
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center;
  padding: 0 !important;
  max-width: none !important;
}
.brand-logo-img, .brand .mark img, .brand .lg img, .brand .brand-mark img {
  height: 72px !important;
  width: auto !important;
  max-width: none !important;
  border-radius: 0 !important;
  display: inline-block !important;
}
.brand-text, .brand .mark + span, .brand .lg + span, .brand .brand-mark + span {
  display: none !important;
}
.brand-logo::after, .brand .mark::after, .brand .lg::after, .brand .brand-mark::after {
  display: none !important;
}
