/*
Theme Name: MWX PCB Website 9
Theme URI: https://www.mwxpcb.com/
Author: MWX PCB
Description: Project028 confirmed multi-page WordPress theme.
Version: 3.0.0
Text Domain: mwxpcb
*/

:root {
  --ink: #13212b;
  --muted: #5f6b74;
  --line: #dbe5e7;
  --soft: #f5f8f8;
  --teal: #159a9c;
  --teal-dark: #0d6f73;
  --copper: #b9782b;
  --dark: #0f252c;
  --white: #ffffff;
  --max: 1220px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; max-width: 100%; overflow-x: hidden; }
body { margin: 0; max-width: 100%; overflow-x: hidden; font-family: Arial, Helvetica, sans-serif; color: var(--ink); background: #fff; font-size: 16px; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
button, input, select, textarea { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.98); border-bottom: 1px solid var(--line); }
.nav-shell { max-width: 1440px; height: 76px; margin: 0 auto; padding: 0 34px; display: flex; align-items: center; gap: 26px; }
.logo { flex: none; font-weight: 800; font-size: 24px; letter-spacing: 0; white-space: nowrap; }
.logo span { color: var(--teal); }
.menu { display: flex; align-items: stretch; justify-content: center; gap: 10px; flex: 1; height: 100%; }
.nav-item { position: relative; display: flex; align-items: stretch; }
.nav-link { display: flex; align-items: center; gap: 5px; padding: 0 12px; font-size: 15px; color: #26343d; border-bottom: 2px solid transparent; }
.nav-link:hover, .nav-link.active { color: var(--teal-dark); border-bottom-color: var(--teal); }
.chevron { font-size: 11px; }
.dropdown { display: none; position: absolute; left: 0; top: 74px; min-width: 235px; padding: 9px; background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 30px rgba(15,37,44,.12); border-radius: 0 0 6px 6px; }
.dropdown a { display: block; padding: 11px 12px; border-radius: 4px; color: #33444d; font-size: 14px; }
.dropdown a:hover { background: var(--soft); color: var(--teal-dark); }
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown { display: block; }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.menu-toggle { display: none; width: 42px; height: 42px; padding: 10px; border: 1px solid var(--line); background: #fff; border-radius: 6px; }
.menu-toggle span:not(.sr-only) { display: block; height: 2px; background: var(--ink); margin: 4px 0; }

.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border: 1px solid var(--teal); background: var(--teal); color: #fff; padding: 11px 18px; border-radius: 6px; font-weight: 700; font-size: 14px; white-space: nowrap; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.btn:hover { background: var(--teal-dark); border-color: var(--teal-dark); }
.btn.secondary { color: var(--teal-dark); background: #fff; border-color: #a8cfd0; }
.btn.secondary:hover { background: #eff8f8; }
.actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 25px 0 24px; }
.actions:last-child { margin-bottom: 0; }
.text-link { color: var(--teal-dark); font-weight: 700; }

.section { width: min(100%, var(--max)); margin: 0 auto; padding: 74px 32px; }
.section-tight { padding-top: 48px; padding-bottom: 48px; }
.band { background: var(--soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.eyebrow { color: var(--teal-dark); font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 18px; }
h1, h2, h3, p { letter-spacing: 0; }
h1 { font-size: 56px; line-height: 1.03; margin: 0 0 20px; }
h2 { font-size: 35px; line-height: 1.12; margin: 0; }
h3 { margin: 0 0 10px; font-size: 18px; line-height: 1.22; }
.subtitle { font-size: 23px; line-height: 1.35; margin: 0 0 18px; color: #20313c; font-weight: 700; }
.lead, .body-copy { color: var(--muted); line-height: 1.7; font-size: 17px; margin: 0; }
.lead { max-width: 640px; }
.body-copy + .body-copy { margin-top: 13px; }
.hero { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: center; padding-top: 68px; padding-bottom: 68px; }
.home-hero { grid-template-columns: 1.02fr .98fr; }
.home-hero h1 { font-size: 46px; line-height: 1.08; }
.hero-copy { min-width: 0; }
.hero-gallery { display: grid; grid-template-columns: 1.05fr .95fr; grid-template-rows: 190px 190px; gap: 12px; min-width: 0; }
.photo { overflow: hidden; border-radius: 8px; border: 1px solid var(--line); background: var(--soft); position: relative; }
.photo.main { grid-row: span 2; }
.photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.photo.contain img, .image-frame.contain img { object-fit: contain; background: #fff; padding: 18px; }
.caption { position: absolute; left: 12px; bottom: 12px; max-width: calc(100% - 24px); padding: 7px 10px; background: rgba(255,255,255,.94); border: 1px solid rgba(219,229,231,.9); border-radius: 5px; font-size: 12px; font-weight: 800; text-transform: uppercase; line-height: 1.2; }
.tags, .applications { display: flex; flex-wrap: wrap; gap: 10px; }
.tag, .app { border: 1px solid var(--line); background: #fff; padding: 9px 12px; border-radius: 6px; color: #384851; font-size: 13px; font-weight: 700; }

.section-head { display: flex; justify-content: space-between; align-items: end; gap: 36px; margin-bottom: 30px; }
.section-head > * { min-width: 0; }
.section-head p { max-width: 540px; }
.cards-3, .cards-4, .cards-5, .case-grid, .knowledge-grid, .faq-grid, .trust-grid, .steps, .flow { display: grid; gap: 16px; }
.cards-3, .case-grid { grid-template-columns: repeat(3, 1fr); }
.cards-4, .trust-grid, .steps { grid-template-columns: repeat(4, 1fr); }
.cards-5, .flow { grid-template-columns: repeat(5, 1fr); }
.card, .service-card, .quality-card, .step-card, .flow-card, .info-card, .note-card, .scenario-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 24px; }
.card p, .service-card p, .quality-card p, .step-card p, .flow-card p, .info-card p, .note-card p, .scenario-card p { color: var(--muted); line-height: 1.6; margin: 0; font-size: 14px; }
.icon-number { width: 36px; height: 36px; border-radius: 6px; background: #e8f5f4; color: var(--teal-dark); display: grid; place-items: center; font-weight: 900; margin-bottom: 18px; }
.trust-item { padding: 20px; border-right: 1px solid var(--line); }
.trust-item:last-child { border-right: 0; }
.trust-value { color: var(--teal-dark); font-weight: 800; font-size: 26px; margin-bottom: 6px; }
.trust-label { color: #4b5b65; font-size: 13px; font-weight: 700; line-height: 1.4; }

.split, .service-detail, .quality-split { display: grid; grid-template-columns: .95fr 1.05fr; gap: 46px; align-items: center; }
.split.reverse, .service-detail.reverse { grid-template-columns: 1.05fr .95fr; }
.service-detail + .service-detail { margin-top: 68px; }
.image-frame { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; min-height: 330px; box-shadow: 0 8px 24px rgba(15,37,44,.06); }
.image-frame img { width: 100%; height: 360px; object-fit: cover; display: block; }
.mini-grid, .check-grid, .inspection-list, .position-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 18px; }
.mini, .check, .position-item { border-left: 3px solid var(--copper); background: #fff; border-radius: 6px; padding: 11px 12px; font-weight: 800; color: #34444e; border-top: 1px solid var(--line); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.35; }
.inspection-item { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 16px; font-weight: 800; color: #34444e; }
.content-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 34px; }
.content-columns.two { grid-template-columns: repeat(2, 1fr); }
.content-columns > div { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 22px; }
.content-list { margin: 14px 0 0; padding-left: 20px; color: var(--muted); }
.content-list li { margin: 9px 0; line-height: 1.5; }

.cap-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cap-card { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.cap-card img { width: 100%; height: 190px; object-fit: cover; display: block; }
.cap-card .pad { padding: 18px; }
.cap-card p { color: var(--muted); line-height: 1.55; margin: 0; font-size: 14px; }
.feature { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.accordion { display: grid; gap: 10px; }
.acc-item { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 18px; }
.acc-title { display: flex; justify-content: space-between; gap: 20px; font-weight: 800; }
.acc-item.open { box-shadow: 0 6px 20px rgba(15,37,44,.06); }
.acc-item.open .acc-title { color: var(--teal-dark); }
.acc-item p { color: var(--muted); font-size: 14px; line-height: 1.6; margin: 12px 0 0; }
.table-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 38px; overflow-x: auto; }
.cap-table { width: 100%; border-collapse: collapse; min-width: 470px; }
.cap-table th { text-align: left; padding: 12px 10px; border-bottom: 1px solid #718087; font-size: 13px; }
.cap-table td { padding: 15px 10px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 14px; vertical-align: top; line-height: 1.45; }
.cap-table td:last-child { color: var(--ink); font-weight: 700; }
.capability-note { max-width: 560px; padding: 18px 20px; border-left: 3px solid var(--copper); background: #fbf8f3; color: #4f5d65; line-height: 1.6; }

.case-card { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.case-card img { width: 100%; height: 190px; object-fit: contain; display: block; padding: 14px; background: #fff; border-bottom: 1px solid var(--line); }
.case-body { padding: 21px; }
.case-label { color: var(--teal-dark); font-weight: 800; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 10px; }
.case-row { margin-top: 12px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.case-row strong { color: var(--ink); display: block; margin-bottom: 3px; }
.knowledge-layout { display: grid; grid-template-columns: .95fr 1.05fr; gap: 34px; align-items: stretch; }
.knowledge-feature img { width: 100%; height: 100%; min-height: 410px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.knowledge-grid, .faq-grid { grid-template-columns: repeat(2, 1fr); }
.knowledge-card, .faq-item { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 19px; }
.knowledge-card p, .faq-item p { color: var(--muted); font-size: 13px; line-height: 1.55; margin: 0; }
.faq-item h3 { font-size: 15px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }

.contact-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 28px; align-items: start; }
.contact-card, .form-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 26px; }
.contact-card { background: var(--dark); color: #fff; }
.contact-card h2 { color: #fff; }
.contact-card .body-copy { color: #c7d6da; }
.contact-list { display: grid; gap: 10px; margin-top: 23px; }
.contact-item { border: 1px solid rgba(255,255,255,.18); border-radius: 7px; padding: 13px; overflow-wrap: anywhere; }
.contact-item span { display: block; color: #99b2b8; font-size: 11px; text-transform: uppercase; font-weight: 800; letter-spacing: .06em; margin-bottom: 5px; }
.contact-item strong, .contact-item a { color: #fff; font-size: 15px; line-height: 1.4; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; margin: 22px 0; }
.field { display: grid; gap: 7px; min-width: 0; }
.field.full { grid-column: 1 / -1; }
label { font-size: 13px; color: #34444e; font-weight: 800; }
input, select, textarea { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 6px; padding: 12px 13px; color: var(--ink); background: #fff; }
textarea { min-height: 126px; resize: vertical; }
.file-input { padding: 18px; border-style: dashed; background: #f7fbfb; }
.field small { color: var(--muted); }
.site-notice { width: min(calc(100% - 32px), var(--max)); margin: 14px auto; padding: 13px 16px; border-radius: 6px; border: 1px solid #a7d2c1; background: #eef9f4; color: #245943; }
.site-notice.error, .site-notice.file-error { border-color: #e1b5ad; background: #fff4f2; color: #7c3328; }

.legal-hero { display: grid; grid-template-columns: 1.2fr .8fr; gap: 42px; align-items: center; }
.legal-hero .image-frame { min-height: 260px; }
.legal-hero .image-frame img { height: 280px; }
.legal-layout { display: grid; grid-template-columns: 260px 1fr; gap: 42px; align-items: start; }
.legal-nav { position: sticky; top: 100px; display: grid; gap: 6px; border: 1px solid var(--line); border-radius: 8px; padding: 14px; }
.legal-nav a { padding: 9px 10px; border-radius: 5px; color: #40515b; font-size: 14px; }
.legal-nav a:hover { background: var(--soft); color: var(--teal-dark); }
.legal-content { display: grid; gap: 18px; }
.legal-section { border-bottom: 1px solid var(--line); padding-bottom: 24px; }
.legal-section h2 { font-size: 25px; margin-bottom: 12px; }
.legal-section p, .legal-section li { color: var(--muted); line-height: 1.7; }
.legal-section h3 { margin-top: 24px; margin-bottom: 8px; font-size: 18px; }
.legal-section ul { padding-left: 22px; }

.cta { text-align: center; background: var(--dark); color: #fff; border-radius: 8px; padding: 47px 36px; }
.cta h2 { color: #fff; }
.cta p { color: #d5e1e4; margin: 14px auto 0; max-width: 720px; font-size: 17px; line-height: 1.6; }
.cta .actions { justify-content: center; }
.cta .btn.secondary { background: transparent; color: #fff; border-color: #6c8c92; }

.footer { margin-top: 52px; background: #0a1c22; color: #cbd8dc; }
.footer-inner { width: min(100%, var(--max)); margin: 0 auto; padding: 52px 32px 38px; display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 44px; }
.footer h3 { color: #fff; font-size: 15px; margin-bottom: 16px; }
.footer p { color: #aebfc4; line-height: 1.65; max-width: 360px; }
.footer a { color: #cbd8dc; display: block; margin: 9px 0; font-size: 14px; }
.footer a:hover { color: #fff; }
.footer-logo { color: #fff; margin-bottom: 12px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 17px 32px; text-align: center; color: #8fa4aa; font-size: 13px; }
.cookie-banner { display: none; position: fixed; z-index: 100; left: 20px; right: 20px; bottom: 20px; max-width: 980px; margin: 0 auto; padding: 18px 20px; border: 1px solid #9cb4ba; background: #fff; box-shadow: 0 14px 40px rgba(0,0,0,.18); border-radius: 8px; align-items: center; justify-content: space-between; gap: 24px; }
.cookie-banner.is-visible { display: flex; }
.cookie-banner strong { display: block; margin-bottom: 5px; }
.cookie-banner p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.cookie-actions { display: flex; align-items: center; gap: 9px; flex: none; }

/* Confirmed Project028 homepage */
.home-confirmed-hero { width: min(100%, 1440px); margin: 0 auto; display: grid; grid-template-columns: 1fr 1.05fr; grid-template-areas: "copy art" "tags art"; border-bottom: 1px solid var(--line); }
.home-hero-copy { grid-area: copy; padding: 36px 32px 18px max(32px, calc((100vw - 1360px) / 2)); align-self: start; }
.home-hero-copy h1 { font-size: 42px; line-height: 1.12; margin-bottom: 16px; white-space: nowrap; }
.home-hero-copy .subtitle { font-size: 18px; font-weight: 400; }
.home-hero-copy .lead { max-width: 600px; font-size: 16px; line-height: 1.65; }
.confirmed-home-art { grid-area: art; width: 100%; min-height: 0; aspect-ratio: 454 / 299; align-self: start; background-repeat: no-repeat; background-size: 190.1% auto; background-position: 100% 3.35%; }
.home-core-tags { grid-area: tags; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0 24px 26px max(32px, calc((100vw - 1360px) / 2)); gap: 10px; align-self: start; }
.home-core-tag { min-width: 0; display: grid; grid-template-columns: 46px 1fr; grid-template-rows: auto auto; align-items: center; column-gap: 9px; padding-right: 10px; }
.home-core-tag .tag-symbol { grid-row: 1 / 3; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid #8bb9ba; color: var(--teal-dark); font-weight: 800; font-size: 12px; }
.home-core-tag strong { font-size: 12px; line-height: 1.25; }
.home-core-tag small { color: var(--muted); font-size: 11px; line-height: 1.25; }
.home-white-band { border-bottom: 1px solid var(--line); background: #fff; }
.home-compact-band { padding-top: 0; padding-bottom: 0; }
.home-inner { width: min(100%, 1360px); margin: 0 auto; padding: 34px 32px; }
.home-section-title { text-align: center; font-size: 27px; margin-bottom: 26px; }
.home-why-grid, .home-service-grid { display: grid; gap: 26px; }
.home-why-grid { grid-template-columns: repeat(3, 1fr); }
.home-icon-card { min-height: 150px; border: 1px solid var(--line); display: grid; grid-template-columns: 58px 1fr; gap: 16px; padding: 22px; align-items: start; }
.home-line-icon, .home-round-icon { width: 52px; height: 52px; border: 1px solid #b9d5d5; color: var(--teal-dark); display: grid; place-items: center; border-radius: 50%; font-weight: 800; }
.home-icon-card p, .home-service-card p, .home-process-step p { color: var(--muted); font-size: 14px; line-height: 1.55; margin: 0; }
.home-experience-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.home-experience-item { display: grid; grid-template-columns: 60px 1fr; gap: 12px; align-items: center; padding: 12px 22px; border-right: 1px solid var(--line); }
.home-experience-item:last-child { border-right: 0; }
.home-experience-item strong, .home-experience-item small { display: block; }
.home-experience-item strong { color: #17434a; font-size: 15px; margin-bottom: 7px; }
.home-experience-item small { color: var(--muted); line-height: 1.4; }
.home-service-grid { grid-template-columns: repeat(4, 1fr); }
.home-service-card { min-height: 220px; border: 1px solid var(--line); padding: 22px; }
.home-service-card .home-line-icon { border-radius: 0; margin-bottom: 18px; }
.home-service-card a, .home-case-card a, .home-heading-row a { display: inline-block; color: var(--teal-dark); font-weight: 700; font-size: 13px; margin-top: 16px; }
.home-capability-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 30px; }
.home-spec-table { width: 100%; border-collapse: collapse; border: 1px solid var(--line); }
.home-spec-table th, .home-spec-table td { padding: 14px 18px; border-bottom: 1px solid var(--line); text-align: left; font-size: 14px; }
.home-spec-table th { width: 42%; color: #3a4b54; }
.home-spec-table td { color: var(--muted); }
.home-applications { border: 1px solid var(--line); padding: 20px; }
.home-app-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-top: 20px; }
.home-app-grid span { text-align: center; color: #32454e; font-weight: 700; font-size: 13px; line-height: 1.4; padding-top: 44px; position: relative; }
.home-app-grid span:before { content: ""; position: absolute; top: 4px; left: 50%; width: 29px; height: 29px; transform: translateX(-50%); border: 2px solid var(--teal-dark); }
.home-tech-row { display: grid; grid-template-columns: repeat(6, 1fr); border: 1px solid var(--line); margin-top: 16px; }
.home-tech-row a { padding: 13px 10px; text-align: center; font-size: 13px; font-weight: 700; color: #31515a; }
.home-tech-row a:before { content: "\2713"; display: inline-grid; place-items: center; width: 17px; height: 17px; border: 1px solid var(--teal); border-radius: 50%; margin-right: 8px; font-size: 10px; }
.home-heading-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 22px; }
.home-heading-row h2 { font-size: 26px; }
.home-case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.home-case-card { display: grid; grid-template-columns: 42% 58%; border: 1px solid var(--line); padding: 12px; min-height: 250px; }
.home-case-card img { width: 100%; height: 100%; object-fit: cover; }
.home-case-card > div { padding: 6px 14px; }
.home-case-card small { color: var(--teal-dark); font-weight: 800; }
.home-case-card h3 { font-size: 16px; margin-top: 6px; }
.home-case-card p { color: var(--muted); font-size: 11px; line-height: 1.45; margin: 8px 0; }
.home-case-card p strong { color: var(--ink); }
.home-process-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; margin-top: 24px; }
.home-process-step { position: relative; padding-top: 62px; }
.home-process-step:before { content: ""; position: absolute; top: 25px; left: 0; width: 46px; height: 46px; border: 1px solid #b9d5d5; border-radius: 50%; }
.home-process-step span { position: absolute; top: 34px; left: 34px; z-index: 1; background: var(--teal-dark); color: #fff; border-radius: 6px; padding: 5px 7px; font-weight: 800; font-size: 12px; }
.home-process-step h3 { font-size: 14px; margin-top: 16px; }
.home-quality-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.home-quality-grid > div { display: grid; grid-template-columns: 42px 1fr; grid-template-rows: auto auto; gap: 2px 12px; padding: 12px 22px; border-right: 1px solid var(--line); }
.home-quality-grid > div:last-child { border-right: 0; }
.home-quality-grid span { grid-row: 1 / 3; width: 38px; height: 38px; border: 1px solid #b9d5d5; border-radius: 50%; display: grid; place-items: center; color: var(--teal-dark); font-weight: 800; font-size: 12px; }
.home-quality-grid strong, .home-quality-grid small { display: block; }
.home-quality-grid strong { font-size: 14px; }
.home-quality-grid small { color: var(--muted); line-height: 1.45; }
.home-about-layout { display: grid; grid-template-columns: 180px 1.2fr .8fr; gap: 30px; align-items: center; }
.confirmed-david-photo { width: 180px; aspect-ratio: 123 / 128; background-repeat: no-repeat; background-size: 701.6% auto; background-position: 4.9% 91.9%; border: 1px solid var(--line); }
.home-about-layout h2 { font-size: 25px; }
.home-about-layout p { color: var(--muted); font-size: 13px; line-height: 1.5; margin: 7px 0; }
.home-about-layout .btn { margin-top: 10px; min-height: 38px; padding: 8px 14px; }
.home-about-points { border: 1px solid var(--line); padding: 18px; display: grid; gap: 13px; }
.home-about-points span { font-size: 13px; font-weight: 700; }
.home-about-points span:before { content: "\2713"; color: var(--teal-dark); margin-right: 10px; }
.home-final-cta { width: min(100%, 1440px); margin: 0 auto; min-height: 210px; background: #05636a; color: #fff; display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; overflow: hidden; }
.home-final-cta > div { padding: 34px max(32px, calc((100vw - 1360px) / 2)); }
.home-final-cta h2 { color: #fff; font-size: 34px; }
.home-final-cta p { color: #d9eeee; }
.home-final-cta img { width: 100%; height: 210px; object-fit: cover; }
.home-final-cta .btn.secondary { background: #fff; color: var(--teal-dark); }
.form-privacy-note { color: var(--muted); font-size: 12px; line-height: 1.5; margin: 0 0 18px; }

@media (max-width: 1120px) {
  .nav-shell { padding: 0 20px; gap: 14px; }
  .menu { gap: 0; }
  .nav-link { padding: 0 8px; font-size: 14px; }
  .nav-actions .secondary { display: none; }
  h1 { font-size: 48px; }
  .hero { gap: 34px; }
  .home-hero h1 { font-size: 44px; }
  .home-hero-copy h1 { font-size: 35px; }
  .home-core-tags { grid-template-columns: repeat(2, 1fr); }
  .home-process-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
  .nav-shell { height: 68px; flex-wrap: wrap; }
  .menu-toggle { display: block; margin-left: auto; }
  .nav-actions { order: 2; }
  .nav-actions .btn { min-height: 40px; padding: 9px 12px; }
  .menu { display: none; position: absolute; left: 0; right: 0; top: 68px; height: auto; max-height: calc(100vh - 68px); overflow-y: auto; background: #fff; border-bottom: 1px solid var(--line); padding: 10px 18px 18px; align-items: stretch; flex-direction: column; }
  .menu.is-open { display: flex; }
  .nav-item { display: block; }
  .nav-link { min-height: 44px; padding: 0 8px; justify-content: space-between; border-bottom: 1px solid var(--line); }
  .dropdown { display: grid; position: static; min-width: 0; padding: 5px 10px 9px; box-shadow: none; border: 0; border-radius: 0; }
  .dropdown a { padding: 9px 10px; }
  .hero, .split, .split.reverse, .service-detail, .service-detail.reverse, .feature, .quality-split, .knowledge-layout, .contact-layout, .legal-hero { grid-template-columns: 1fr; }
  .hero { padding-top: 48px; }
  .hero-gallery { min-height: 390px; }
  .cards-4, .trust-grid, .steps, .cards-5, .flow { grid-template-columns: repeat(2, 1fr); }
  .cap-grid, .cards-3, .case-grid { grid-template-columns: repeat(2, 1fr); }
  .table-wrap { grid-template-columns: 1fr; gap: 0; }
  .footer-inner { grid-template-columns: repeat(2, 1fr); }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-nav { position: static; grid-template-columns: repeat(2, 1fr); }
  .content-columns { grid-template-columns: 1fr; }
  .content-columns.two { grid-template-columns: 1fr 1fr; }
  .home-confirmed-hero { grid-template-columns: 1fr; grid-template-areas: "copy" "art" "tags"; }
  .home-hero-copy { padding: 48px 32px 22px; }
  .home-hero-copy h1 { white-space: normal; }
  .confirmed-home-art { min-height: 0; aspect-ratio: 454 / 299; }
  .home-core-tags { padding: 24px 32px 30px; }
  .home-why-grid, .home-service-grid, .home-case-grid { grid-template-columns: repeat(2, 1fr); }
  .home-experience-grid, .home-quality-grid { grid-template-columns: repeat(2, 1fr); }
  .home-capability-layout { grid-template-columns: 1fr; }
  .home-tech-row { grid-template-columns: repeat(3, 1fr); }
  .home-about-layout { grid-template-columns: 160px 1fr; }
  .home-about-points { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .nav-shell { padding: 0 14px; }
  .logo { font-size: 21px; }
  .nav-actions { display: none; }
  .section { padding: 54px 20px; }
  .section-tight { padding-top: 34px; padding-bottom: 34px; }
  h1 { font-size: 39px; line-height: 1.08; }
  .home-hero h1 { font-size: 39px; }
  h2 { font-size: 29px; }
  .subtitle { font-size: 20px; }
  .lead, .body-copy { font-size: 16px; }
  .hero-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 250px 150px; min-height: 0; }
  .photo.main { grid-column: 1 / -1; grid-row: auto; }
  .section-head { display: block; }
  .section-head p { margin-top: 15px; }
  .cards-3, .cards-4, .cards-5, .case-grid, .cap-grid, .trust-grid, .steps, .flow, .knowledge-grid, .faq-grid, .info-grid { grid-template-columns: 1fr; }
  .trust-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .mini-grid, .check-grid, .inspection-list, .position-grid, .form-grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
  .image-frame { min-height: 250px; }
  .image-frame img { height: 280px; }
  .cap-card img { height: 210px; }
  .actions { display: grid; grid-template-columns: 1fr; }
  .btn { width: 100%; white-space: normal; text-align: center; }
  .table-wrap { margin-left: -20px; margin-right: -20px; padding: 0 20px; }
  .footer-inner { grid-template-columns: 1fr; padding: 42px 20px 30px; gap: 26px; }
  .cookie-banner { left: 10px; right: 10px; bottom: 10px; display: none; align-items: stretch; flex-direction: column; gap: 14px; }
  .cookie-banner.is-visible { display: flex; }
  .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .cookie-actions .text-link { grid-column: 1 / -1; text-align: center; padding: 6px; }
  .legal-nav { grid-template-columns: 1fr; }
  .content-columns.two { grid-template-columns: 1fr; }
  .home-hero-copy { padding: 42px 20px 20px; }
  .home-hero-copy h1 { font-size: 35px; }
  .home-core-tags { grid-template-columns: 1fr; padding: 22px 20px 28px; }
  .home-inner { padding: 30px 20px; }
  .home-why-grid, .home-service-grid, .home-case-grid, .home-experience-grid, .home-quality-grid, .home-process-grid { grid-template-columns: 1fr; }
  .home-experience-item, .home-quality-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .home-app-grid { grid-template-columns: repeat(2, 1fr); }
  .home-tech-row { grid-template-columns: 1fr 1fr; }
  .home-case-card { grid-template-columns: 1fr; }
  .home-case-card img { height: 220px; }
  .home-about-layout { grid-template-columns: 1fr; }
  .confirmed-david-photo { width: 150px; }
  .home-about-points { grid-column: auto; }
  .home-final-cta { grid-template-columns: 1fr; }
  .home-final-cta > div { padding: 34px 20px; }
}
