:root {
  --navy-950: #06172b;
  --navy-900: #071b33;
  --navy-800: #0b2b4e;
  --navy-700: #114168;
  --blue-600: #176492;
  --gold-500: #c89a43;
  --gold-400: #d9ae60;
  --gold-200: #f1dfb9;
  --ink: #13243a;
  --muted: #5f6f83;
  --line: #dbe3eb;
  --surface: #ffffff;
  --surface-tint: #f3f6f9;
  --success: #2b8a64;
  --shadow: 0 24px 60px rgba(6, 23, 43, 0.11);
  --radius-lg: 24px;
  --radius-md: 14px;
  --container: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 88px; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--surface);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

body.menu-open { overflow: hidden; }

a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; height: auto; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--navy-950); line-height: 1.14; letter-spacing: -0.025em; }
h1 { font-size: clamp(2.75rem, 5.2vw, 5rem); }
h2 { font-size: clamp(2.15rem, 3.6vw, 3.35rem); }
h3 { font-size: 1.2rem; }
p { color: var(--muted); }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding: 112px 0; }
.section-tint { background: var(--surface-tint); }
.section-dark { position: relative; color: white; background: var(--navy-950); }
.section-dark h1, .section-dark h2, .section-dark h3, .section-dark p { color: white; }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 10px 16px;
  color: white;
  background: var(--navy-900);
  border-radius: 8px;
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

.eyebrow {
  margin-bottom: 18px;
  color: var(--gold-500);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  width: 100%;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid rgba(219, 227, 235, 0.9);
  transition: box-shadow 180ms ease;
}
.site-header.is-scrolled { box-shadow: 0 9px 28px rgba(6, 23, 43, 0.08); }
.header-inner { display: flex; min-height: 78px; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 12px; flex: none; }
.brand-mark {
  display: inline-grid;
  width: 38px;
  height: 38px;
  place-items: center;
  color: var(--navy-950);
  background: var(--gold-400);
  border-radius: 9px 9px 9px 2px;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.brand-name { color: var(--navy-950); font-size: 1.25rem; font-weight: 850; letter-spacing: -0.03em; }
.primary-nav { display: flex; align-items: center; justify-content: center; gap: 24px; margin-left: auto; }
.primary-nav a { position: relative; color: #33455c; font-size: 0.88rem; font-weight: 650; white-space: nowrap; }
.primary-nav a::after { position: absolute; right: 50%; bottom: -9px; left: 50%; height: 2px; background: var(--gold-500); content: ''; transition: left 160ms ease, right 160ms ease; }
.primary-nav a:hover::after, .primary-nav a:focus-visible::after, .primary-nav a.is-active::after { right: 0; left: 0; }
.menu-toggle { display: none; }

.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  color: var(--navy-950);
  background: var(--gold-400);
  border: 1px solid var(--gold-400);
  border-radius: 10px;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, transform 150ms ease;
}
.button:hover { background: #e6bf73; border-color: #e6bf73; transform: translateY(-1px); }
.button:focus-visible, .text-link:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(200, 154, 67, 0.38); outline-offset: 3px; }
.button-small { min-height: 42px; padding: 9px 16px; font-size: 0.86rem; }
.button-outline-light { color: white; background: transparent; border-color: rgba(255, 255, 255, 0.42); }
.button-outline-light:hover { color: white; background: rgba(255, 255, 255, 0.09); border-color: white; }
.header-cta { flex: none; }

.hero { min-height: 690px; overflow: hidden; padding: 92px 0 86px; }
.hero::before { position: absolute; top: -230px; right: -170px; width: 690px; height: 690px; border: 1px solid rgba(217, 174, 96, 0.18); border-radius: 50%; content: ''; }
.hero::after { position: absolute; right: 12%; bottom: -330px; width: 540px; height: 540px; background: rgba(17, 65, 104, 0.34); border-radius: 50%; filter: blur(1px); content: ''; }
.hero-grid { position: absolute; inset: 0; opacity: 0.09; background-image: linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px); background-size: 56px 56px; mask-image: linear-gradient(to right, transparent, black); }
.hero-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(350px, 0.8fr); align-items: center; gap: 76px; }
.hero-copy { max-width: 730px; }
.hero h1 { max-width: 760px; margin-bottom: 24px; font-weight: 780; }
.hero-lead { max-width: 700px; margin-bottom: 18px; color: #dbe7f2; font-size: clamp(1.12rem, 1.8vw, 1.38rem); line-height: 1.55; }
.hero-note { max-width: 680px; margin-bottom: 31px; color: #9eb2c6; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-contact { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; color: #bdcbd8; font-size: 0.9rem; }
.hero-contact a:hover { color: var(--gold-400); }

.execution-panel { position: relative; padding: 24px; background: rgba(11, 43, 78, 0.66); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: var(--radius-lg); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.28); backdrop-filter: blur(12px); }
.panel-header { display: flex; justify-content: space-between; margin-bottom: 22px; padding-bottom: 16px; color: #dce7f1; border-bottom: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.76rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.status { display: flex; align-items: center; gap: 7px; color: #bde6d5; }
.status i { width: 7px; height: 7px; background: #62c499; border-radius: 50%; box-shadow: 0 0 0 4px rgba(98, 196, 153, 0.12); }
.operation-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.operation-list li { display: flex; align-items: center; gap: 14px; padding: 13px 14px; background: rgba(255, 255, 255, 0.055); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 10px; }
.operation-list li > span { display: grid; width: 34px; height: 34px; place-items: center; color: var(--gold-400); background: rgba(217, 174, 96, 0.09); border: 1px solid rgba(217, 174, 96, 0.26); border-radius: 50%; font-size: 0.7rem; font-weight: 850; }
.operation-list div { display: flex; flex-direction: column; }
.operation-list strong { color: white; font-size: 0.94rem; }
.operation-list small { color: #9fb4c7; font-size: 0.77rem; }
.route-line { display: flex; align-items: center; justify-content: space-between; margin: 22px 6px 15px; }
.route-line::before { position: absolute; right: 36px; left: 36px; height: 1px; background: linear-gradient(to right, var(--gold-500), #4d819f); content: ''; }
.route-line i { position: relative; z-index: 1; width: 8px; height: 8px; background: var(--navy-900); border: 2px solid var(--gold-400); border-radius: 50%; }
.execution-panel > p { margin: 0; color: #b9c9d8; font-size: 0.86rem; text-align: center; }

.trust-strip { background: white; border-bottom: 1px solid var(--line); }
.trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.trust-grid p { display: flex; flex-direction: column; margin: 0; padding: 25px 30px; border-right: 1px solid var(--line); }
.trust-grid p:first-child { padding-left: 0; }
.trust-grid p:last-child { padding-right: 0; border-right: 0; }
.trust-grid strong { color: var(--navy-900); font-size: 0.88rem; }
.trust-grid span { color: var(--muted); font-size: 0.82rem; }

.section-heading { margin-bottom: 52px; }
.section-heading h2 { max-width: 710px; margin-bottom: 0; }
.section-heading > p { max-width: 610px; margin: 18px auto 0; }
.heading-split { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr); align-items: end; gap: 60px; }
.heading-split > p { max-width: 430px; margin: 0 0 5px; }
.centered-heading { max-width: 780px; margin-right: auto; margin-left: auto; text-align: center; }
.light-heading p { color: #a9bacb; }

.card-grid { display: grid; gap: 18px; }
.service-grid { grid-template-columns: repeat(3, 1fr); }
.service-card { min-height: 270px; padding: 28px; background: white; border: 1px solid var(--line); border-radius: var(--radius-md); transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.service-card:hover { border-color: var(--gold-400); box-shadow: var(--shadow); transform: translateY(-3px); }
.card-index { display: inline-grid; width: 40px; height: 40px; margin-bottom: 44px; place-items: center; color: var(--gold-500); background: #fbf5e9; border-radius: 50%; font-size: 0.74rem; font-weight: 850; }
.service-card h3 { max-width: 240px; margin-bottom: 14px; }
.service-card p { margin-bottom: 0; font-size: 0.94rem; }

.supplier-callout { display: grid; grid-template-columns: 0.8fr 1.5fr auto; align-items: center; gap: 44px; margin-top: 26px; padding: 30px 34px; background: var(--navy-900); border-radius: var(--radius-md); }
.supplier-callout .eyebrow { margin-bottom: 8px; }
.supplier-callout h3 { margin: 0; color: white; font-size: 1.4rem; }
.supplier-callout > p { margin: 0; color: #bdcad6; }
.text-link { color: var(--gold-500); font-weight: 800; white-space: nowrap; }
.text-link:hover { color: var(--gold-400); }

.inspection-services { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.inspection-heading { max-width: 920px; }
.inspection-heading .inspection-subtitle { max-width: 790px; color: var(--navy-800); font-size: 1.12rem; font-weight: 700; }
.inspection-heading .inspection-positioning { max-width: 850px; margin-top: 12px; font-size: 0.91rem; }
.inspection-package-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.inspection-package { position: relative; display: flex; min-width: 0; flex-direction: column; padding: 32px; background: white; border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: 0 10px 28px rgba(6, 23, 43, 0.045); }
.inspection-package-featured { border-color: var(--gold-400); box-shadow: 0 18px 44px rgba(6, 23, 43, 0.09); }
.package-badge { position: absolute; top: 18px; right: 20px; padding: 6px 10px; color: var(--navy-950); background: var(--gold-200); border-radius: 999px; font-size: 0.7rem; font-weight: 850; letter-spacing: 0.05em; line-height: 1.2; text-transform: uppercase; }
.inspection-package-featured .package-heading { padding-right: 116px; }
.package-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 24px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.package-heading h3 { max-width: 270px; margin: 0; font-size: 1.32rem; }
.package-price { flex: none; margin: 0; color: var(--navy-950); font-size: 1.55rem; font-weight: 850; letter-spacing: -0.035em; line-height: 1.05; text-align: right; white-space: nowrap; }
.package-price span { display: block; margin-bottom: 3px; color: var(--muted); font-size: 0.68rem; font-weight: 750; letter-spacing: 0.07em; text-transform: uppercase; }
.package-price-custom { font-size: 1.22rem; }
.package-list { display: grid; gap: 10px; margin: 0 0 24px; padding: 0; list-style: none; }
.package-list li { position: relative; padding-left: 22px; color: #3e5065; font-size: 0.91rem; }
.package-list li::before { position: absolute; top: 0.62em; left: 2px; width: 6px; height: 6px; background: var(--gold-500); border-radius: 50%; content: ''; }
.package-note { margin: auto 0 22px; padding-top: 18px; color: #65758a; border-top: 1px solid #e6ebf0; font-size: 0.79rem; line-height: 1.55; }
.package-button { width: 100%; margin-top: auto; }
.additional-services { display: grid; grid-template-columns: minmax(240px, 0.65fr) minmax(0, 1.35fr); align-items: center; gap: 48px; margin-top: 28px; padding: 32px 34px; background: white; border: 1px solid var(--line); border-radius: var(--radius-md); }
.additional-services .eyebrow { margin-bottom: 9px; }
.additional-services h3 { margin-bottom: 10px; font-size: 1.45rem; }
.additional-services p { margin: 0; font-size: 0.9rem; }
.additional-services ul { display: flex; flex-wrap: wrap; gap: 9px; margin: 0; padding: 0; list-style: none; }
.additional-services li { padding: 8px 12px; color: var(--navy-800); background: var(--surface-tint); border: 1px solid #d7e0e8; border-radius: 999px; font-size: 0.79rem; font-weight: 720; }
.inspection-flow-block { margin-top: 68px; }
.compact-heading { margin-bottom: 34px; }
.compact-heading h3 { margin: 0; font-size: clamp(1.65rem, 2.4vw, 2.25rem); }
.inspection-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.inspection-flow li { display: grid; grid-template-columns: 42px 1fr; gap: 14px; padding: 0 22px; border-left: 1px solid #cdd8e2; }
.inspection-flow li:first-child { padding-left: 0; border-left: 0; }
.inspection-flow li:last-child { padding-right: 0; }
.inspection-flow li > span { display: grid; width: 38px; height: 38px; place-items: center; color: var(--gold-500); background: white; border: 1px solid var(--gold-400); border-radius: 50%; font-size: 0.72rem; font-weight: 850; }
.inspection-flow h4 { margin: 1px 0 9px; color: var(--navy-950); font-size: 1rem; line-height: 1.25; }
.inspection-flow p { margin: 0; font-size: 0.84rem; }
.inspection-important { margin-top: 54px; padding: 30px 34px; background: #fffdf8; border: 1px solid #e4dac6; border-left: 4px solid var(--gold-500); border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.inspection-important h3 { margin-bottom: 18px; font-size: 1.25rem; }
.inspection-important ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 36px; margin: 0; padding-left: 20px; }
.inspection-important li { color: #5c6674; font-size: 0.82rem; }
.inspection-cta { display: grid; grid-template-columns: minmax(0, 1.2fr) auto; align-items: center; gap: 54px; margin-top: 34px; padding: 38px 40px; background: var(--navy-900); border-radius: var(--radius-md); }
.inspection-cta .eyebrow { margin-bottom: 10px; }
.inspection-cta h3 { margin-bottom: 12px; color: white; font-size: clamp(1.55rem, 2.5vw, 2.15rem); }
.inspection-cta p:not(.eyebrow) { max-width: 700px; margin: 0; color: #bdcad6; }
.inspection-cta-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.inspection-cta-actions .button { min-width: 170px; }

.process-list { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; counter-reset: steps; }
.process-list li { position: relative; padding: 0 24px; border-left: 1px solid #cdd8e2; }
.process-list li:first-child { padding-left: 0; border-left: 0; }
.process-list li:last-child { padding-right: 0; }
.step-number { display: inline-flex; margin-bottom: 34px; color: var(--gold-500); font-size: 0.78rem; font-weight: 850; letter-spacing: 0.08em; }
.process-list h3 { min-height: 54px; margin-bottom: 12px; font-size: 1.05rem; }
.process-list p { margin: 0; font-size: 0.88rem; }

.industries-layout { display: grid; grid-template-columns: 0.85fr 1.15fr; align-items: start; gap: 90px; }
.industries-copy { position: sticky; top: 122px; }
.industries-copy h2 { margin-bottom: 24px; }
.industries-copy > p:not(.eyebrow) { font-size: 1.04rem; }
.compliance-note { padding: 18px 20px; color: var(--navy-800) !important; background: #f7f2e7; border-left: 3px solid var(--gold-500); font-size: 0.91rem !important; }
.industry-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 0; padding: 0; list-style: none; }
.industry-list li { display: flex; min-height: 104px; align-items: center; gap: 16px; padding: 20px; color: var(--navy-900); background: white; border: 1px solid var(--line); border-radius: 12px; font-weight: 750; }
.industry-list span { display: grid; width: 42px; height: 42px; flex: none; place-items: center; color: var(--gold-500); background: var(--surface-tint); border-radius: 9px; font-size: 0.72rem; font-weight: 850; }

.why-section { overflow: hidden; }
.why-section::after { position: absolute; top: -360px; right: -240px; width: 760px; height: 760px; border: 1px solid rgba(217,174,96,.12); border-radius: 50%; content: ''; }
.why-section .container { position: relative; z-index: 1; }
.why-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255, 255, 255, 0.14); border-left: 1px solid rgba(255, 255, 255, 0.14); }
.why-grid article { min-height: 260px; padding: 30px; border-right: 1px solid rgba(255, 255, 255, 0.14); border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.why-grid span { color: var(--gold-400); font-size: 0.75rem; font-weight: 850; }
.why-grid h3 { margin: 54px 0 13px; color: white; }
.why-grid p { margin: 0; color: #a9bacb; font-size: 0.92rem; }

.case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.case-card { overflow: hidden; background: white; border: 1px solid var(--line); border-radius: var(--radius-md); }
.case-placeholder { display: flex; min-height: 230px; flex-direction: column; align-items: center; justify-content: center; padding: 30px; color: #798899; background-color: #eaf0f5; background-image: linear-gradient(135deg, rgba(11,43,78,.05) 25%, transparent 25%, transparent 50%, rgba(11,43,78,.05) 50%, rgba(11,43,78,.05) 75%, transparent 75%, transparent); background-size: 22px 22px; text-align: center; }
.case-placeholder span { padding: 8px 12px; color: var(--navy-700); background: rgba(255,255,255,.88); border: 1px solid rgba(11,43,78,.15); border-radius: 6px; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.case-placeholder small { margin-top: 10px; font-size: 0.76rem; }
.case-content { padding: 26px; }
.case-type { margin-bottom: 10px; color: var(--gold-500); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.12em; text-transform: uppercase; }
.case-content h3 { margin-bottom: 12px; }
.case-content p:last-child { margin: 0; font-size: 0.92rem; }

.about-layout { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 100px; }
.about-title-block h2 { max-width: 520px; }
.about-signature { display: flex; flex-direction: column; margin-top: 46px; padding-left: 18px; border-left: 3px solid var(--gold-500); }
.about-signature strong { color: var(--navy-900); }
.about-signature span { color: var(--muted); font-size: 0.9rem; }
.about-copy { padding-top: 34px; }
.about-copy p { font-size: 1.08rem; }

.contact-section { background: white; }
.contact-layout { display: grid; grid-template-columns: 0.75fr 1.25fr; align-items: start; gap: 80px; }
.contact-intro { position: sticky; top: 122px; }
.contact-intro h2 { margin-bottom: 24px; }
.contact-intro > p:not(.eyebrow, .scope-disclaimer) { font-size: 1.06rem; }
.contact-methods { display: grid; gap: 10px; margin: 36px 0; }
.contact-methods a, .contact-methods > p { display: flex; flex-direction: column; margin: 0; padding: 16px 18px; background: var(--surface-tint); border: 1px solid transparent; border-radius: 9px; }
.contact-methods a:hover { border-color: var(--gold-400); }
.contact-methods span { color: var(--muted); font-size: 0.73rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.contact-methods strong { color: var(--navy-900); font-size: 0.94rem; overflow-wrap: anywhere; }
.scope-disclaimer { padding-top: 18px; border-top: 1px solid var(--line); font-size: 0.83rem; }

.quote-form { padding: 38px; background: var(--surface-tint); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.form-heading { margin-bottom: 28px; }
.form-heading h3 { margin-bottom: 8px; font-size: 1.5rem; }
.form-heading p { margin: 0; font-size: 0.87rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.form-grid label { display: flex; flex-direction: column; gap: 7px; }
.form-grid label > span { color: #34475d; font-size: 0.8rem; font-weight: 750; }
.form-full { grid-column: 1 / -1; }
input, select, textarea { width: 100%; min-width: 0; color: var(--ink); background: white; border: 1px solid #cbd6e0; border-radius: 8px; }
input, select { min-height: 48px; padding: 10px 12px; }
textarea { padding: 12px; resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: #9baabd; }
input:focus, select:focus, textarea:focus { border-color: var(--gold-500); outline: 3px solid rgba(200,154,67,.16); }
.consent-line { display: grid; grid-template-columns: 20px 1fr; gap: 10px; margin: 20px 0; align-items: start; color: var(--muted); font-size: 0.82rem; }
.consent-line input { width: 18px; min-height: 18px; margin-top: 3px; }
.consent-line a { color: var(--navy-700); font-weight: 750; text-decoration: underline; }
.form-submit { width: 100%; }
.form-status { min-height: 24px; margin: 10px 0 0; color: var(--navy-700); font-size: 0.84rem; text-align: center; }
.noscript-note { padding: 12px; color: #7c2d12; background: #fff7ed; border-radius: 8px; font-size: 0.86rem; }
.noscript-note a { font-weight: 750; text-decoration: underline; }

.site-footer { color: #b6c4d2; background: #041322; }
.footer-main { display: grid; grid-template-columns: 1.1fr 1fr 0.6fr; gap: 80px; padding: 66px 0 48px; }
.footer-brand .brand-name { color: white; }
.footer-main > div:first-child p { max-width: 330px; margin: 22px 0 0; }
.footer-main h2 { margin-bottom: 18px; color: white; font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase; }
.footer-main p, .footer-main a { display: block; margin-bottom: 8px; color: #9db0c2; font-size: 0.88rem; }
.footer-main a:hover { color: var(--gold-400); }
.footer-bottom { display: flex; justify-content: space-between; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.1); }
.footer-bottom p, .footer-bottom a { margin: 0; color: #7f94a8; font-size: 0.79rem; }
.compact-footer { margin-top: 60px; }

.whatsapp-float { position: fixed; z-index: 90; right: 22px; bottom: 22px; display: inline-flex; min-height: 48px; align-items: center; gap: 9px; padding: 8px 15px 8px 8px; color: white; background: #177a58; border: 1px solid rgba(255,255,255,.25); border-radius: 28px; box-shadow: 0 12px 28px rgba(6,23,43,.22); }
.whatsapp-float span { display: grid; width: 32px; height: 32px; place-items: center; background: rgba(255,255,255,.14); border-radius: 50%; font-size: 0.64rem; font-weight: 900; }
.whatsapp-float strong { font-size: 0.78rem; }
.whatsapp-float:hover { background: #12684b; }
.contact-in-view .whatsapp-float { opacity: 0; pointer-events: none; transform: translateY(10px); }

.simple-header .header-inner { justify-content: space-between; }
.legal-page { padding: 86px 0 50px; }
.legal-layout { display: grid; grid-template-columns: 0.55fr 1.45fr; align-items: start; gap: 100px; }
.legal-summary { position: sticky; top: 118px; }
.legal-summary h1 { margin-bottom: 18px; font-size: clamp(2.4rem, 4vw, 4rem); }
.legal-summary .text-link { display: inline-block; margin-top: 24px; }
.legal-content { max-width: 760px; }
.legal-content > p:first-child { color: var(--ink); font-size: 1.12rem; }
.legal-content h2 { margin: 42px 0 12px; padding-top: 32px; border-top: 1px solid var(--line); font-size: 1.38rem; }
.legal-content a { color: var(--navy-700); font-weight: 700; text-decoration: underline; }

.error-page { display: grid; min-height: 100vh; place-items: center; padding: 40px; color: white; background: var(--navy-950); }
.error-page main { width: min(100%, 720px); text-align: center; }
.error-brand { margin-bottom: 48px; }
.error-brand .brand-name { color: white; }
.error-code { margin-bottom: -28px; color: rgba(217,174,96,.1); font-size: clamp(9rem, 27vw, 18rem); font-weight: 900; letter-spacing: -0.1em; line-height: .8; }
.error-page h1 { color: white; font-size: clamp(2.2rem, 5vw, 4rem); }
.error-page main > p:not(.eyebrow) { max-width: 600px; margin: 0 auto 30px; color: #aabccc; }
.error-page .hero-actions { justify-content: center; }

@media (max-width: 1080px) {
  .primary-nav { gap: 15px; }
  .primary-nav a { font-size: .81rem; }
  .header-inner { gap: 18px; }
  .hero-layout { gap: 44px; }
  .inspection-cta { grid-template-columns: 1fr; gap: 26px; }
  .inspection-cta-actions { justify-content: flex-start; }
  .process-list { grid-template-columns: repeat(3, 1fr); gap: 36px 0; }
  .process-list li:nth-child(4) { padding-left: 0; border-left: 0; }
  .process-list h3 { min-height: auto; }
}

@media (max-width: 980px) {
  html { scroll-padding-top: 76px; }
  .header-inner { min-height: 70px; }
  .menu-toggle { display: inline-flex; margin-left: auto; align-items: center; gap: 10px; padding: 9px 11px; color: var(--navy-900); background: transparent; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
  .menu-toggle-label { font-size: .78rem; font-weight: 800; }
  .menu-lines { display: grid; width: 18px; gap: 4px; }
  .menu-lines span { display: block; width: 18px; height: 2px; background: var(--navy-900); transition: transform 160ms ease, opacity 160ms ease; }
  .menu-toggle[aria-expanded="true"] .menu-lines span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-lines span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] .menu-lines span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .primary-nav { position: fixed; top: 70px; right: 0; bottom: 0; left: 0; display: grid; align-content: start; gap: 0; padding: 18px 20px 120px; overflow-y: auto; background: white; transform: translateX(100%); visibility: hidden; transition: transform 190ms ease, visibility 190ms ease; }
  .primary-nav.is-open { transform: translateX(0); visibility: visible; }
  .primary-nav a { padding: 15px 4px; border-bottom: 1px solid var(--line); font-size: 1rem; }
  .primary-nav a::after { display: none; }
  .header-cta { display: none; }
  .hero { padding-top: 74px; }
  .hero-layout { grid-template-columns: 1fr; }
  .hero-copy { max-width: 790px; }
  .execution-panel { max-width: 620px; }
  .service-grid, .why-grid { grid-template-columns: repeat(2, 1fr); }
  .supplier-callout { grid-template-columns: 1fr 1.6fr; }
  .supplier-callout .text-link { grid-column: 2; }
  .inspection-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 0; }
  .inspection-flow li:nth-child(3) { padding-left: 0; border-left: 0; }
  .industries-layout, .about-layout, .contact-layout, .legal-layout { grid-template-columns: 1fr; gap: 48px; }
  .industries-copy, .contact-intro, .legal-summary { position: static; }
  .about-layout { gap: 10px; }
  .about-copy { padding-top: 0; }
  .contact-intro { max-width: 680px; }
}

@media (max-width: 768px) {
  .container { width: min(calc(100% - 32px), var(--container)); }
  .section { padding: 80px 0; }
  .hero { min-height: auto; padding: 62px 0 66px; }
  .hero::before { top: -230px; right: -400px; }
  .hero-actions { align-items: stretch; }
  .hero-actions .button { flex: 1 1 240px; }
  .trust-grid { grid-template-columns: 1fr; padding: 7px 0; }
  .trust-grid p, .trust-grid p:first-child, .trust-grid p:last-child { padding: 15px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .trust-grid p:last-child { border-bottom: 0; }
  .heading-split { grid-template-columns: 1fr; gap: 18px; }
  .heading-split > p { max-width: 620px; }
  .service-grid, .case-grid { grid-template-columns: 1fr; }
  .service-card { min-height: auto; }
  .card-index { margin-bottom: 28px; }
  .supplier-callout { grid-template-columns: 1fr; gap: 18px; padding: 26px; }
  .supplier-callout .text-link { grid-column: auto; }
  .inspection-package-grid { grid-template-columns: 1fr; }
  .additional-services { grid-template-columns: 1fr; gap: 24px; padding: 28px; }
  .inspection-important ul { grid-template-columns: 1fr; }
  .process-list { grid-template-columns: 1fr; gap: 0; }
  .process-list li, .process-list li:first-child, .process-list li:nth-child(4) { display: grid; grid-template-columns: 56px 1fr; gap: 16px; padding: 0 0 30px; border: 0; }
  .process-list li:not(:last-child)::after { position: absolute; top: 32px; bottom: 0; left: 19px; width: 1px; background: #cdd8e2; content: ''; }
  .step-number { position: relative; z-index: 1; width: 40px; height: 40px; align-items: center; justify-content: center; margin: 0; background: var(--surface-tint); border: 1px solid var(--gold-400); border-radius: 50%; }
  .process-list p { max-width: 560px; }
  .industry-list { grid-template-columns: 1fr; }
  .why-grid { grid-template-columns: 1fr; }
  .why-grid article { min-height: auto; }
  .why-grid h3 { margin-top: 32px; }
  .about-signature { margin-top: 28px; }
  .quote-form { padding: 26px; }
  .footer-main { grid-template-columns: 1fr; gap: 34px; padding-top: 52px; }
  .legal-page { padding-top: 58px; }
}

@media (max-width: 480px) {
  .container { width: min(calc(100% - 28px), var(--container)); }
  body { font-size: 15.5px; }
  .section { padding: 68px 0; }
  .brand-mark { width: 36px; height: 36px; }
  .brand-name { font-size: 1.14rem; }
  .hero { padding-top: 50px; }
  .hero h1 { font-size: clamp(2.35rem, 11.4vw, 3.25rem); }
  .hero-lead { font-size: 1.08rem; }
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .hero-actions .button { width: 100%; min-height: 50px; }
  .hero-contact { gap: 7px; font-size: .8rem; }
  .hero-contact span { display: none; }
  .hero-contact a { flex-basis: 100%; }
  .execution-panel { padding: 17px; }
  .panel-header { align-items: flex-start; gap: 12px; }
  .status { text-align: right; }
  .operation-list li { padding: 11px; }
  .operation-list small { font-size: .72rem; }
  .section-heading { margin-bottom: 36px; }
  .service-card, .why-grid article, .case-content { padding: 24px; }
  .case-placeholder { min-height: 190px; }
  .industry-list li { min-height: 86px; }
  .inspection-package { padding: 24px; }
  .inspection-package-featured .package-heading { padding-right: 0; padding-top: 36px; }
  .package-badge { top: 18px; left: 24px; right: auto; }
  .package-heading { flex-direction: column; gap: 12px; }
  .package-price { text-align: left; }
  .inspection-flow { grid-template-columns: 1fr; gap: 0; }
  .inspection-flow li, .inspection-flow li:first-child, .inspection-flow li:nth-child(3) { position: relative; padding: 0 0 28px; border: 0; }
  .inspection-flow li:not(:last-child)::after { position: absolute; top: 40px; bottom: 0; left: 18px; width: 1px; background: #cdd8e2; content: ''; }
  .inspection-important { padding: 24px; }
  .inspection-cta { padding: 30px 26px; }
  .inspection-cta-actions { display: grid; grid-template-columns: 1fr; }
  .inspection-cta-actions .button { width: 100%; }
  .contact-methods { margin: 28px 0; }
  .quote-form { margin-inline: -2px; padding: 20px; border-radius: 15px; }
  .form-grid { grid-template-columns: 1fr; gap: 15px; }
  .form-full { grid-column: auto; }
  input, select { min-height: 50px; }
  .footer-bottom { flex-direction: column; gap: 7px; }
  .whatsapp-float { right: 12px; bottom: 12px; padding-right: 8px; }
  .whatsapp-float strong { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .simple-header .button { min-height: 40px; padding-inline: 12px; }
  .error-page { padding: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

@media print {
  .site-header, .whatsapp-float, .button { display: none !important; }
  .section { padding: 35px 0; }
  .section-dark { color: black; background: white; }
  .section-dark h1, .section-dark h2, .section-dark h3, .section-dark p { color: black; }
}
