:root {
  --bg: #fff;
  --surface: #f3f4f6;
  --surface-2: #e9ebee;
  --dark: #14181d;
  --text: #14181d;
  --body: #3c4450;
  /* Darkened from #6b7280, which measured 4.39:1 on --surface and 4.05:1 on --surface-2 - under the 4.5:1
     the kit's QA list asks for, and this token is the text colour in more than thirty rules, several of
     them inside "section surface" blocks. This value clears AA on all three grounds: 5.77:1 on white,
     5.24:1 on --surface, 4.83:1 on --surface-2. */
  --muted: #61666f;
  --line: #e2e5e9;
  --accent: #d8232a;
  --accent-hover: #b81c22;
  --accent-soft: #fdecec;
  /* Ground behind the white tick on the thank-you page. #1e8e5a put white at 4.14:1; this puts it at 5.13:1. */
  --success: #1a7d4f;
  --error: #c62828;
  --radius-card: 14px;
  --radius-control: 8px;
  --radius-pill: 999px;
  --container: 1280px;
  --gutter: 24px;
  --section: 78px;
  /* Inter is the typeface the design was approved in, but no font file ships with the site and none can
     be fetched: the Content-Security-Policy in SecurityHeadersMiddleware sets font-src 'self', so a
     Google Fonts link would simply be blocked. Until the woff2 files are dropped in (see below), Inter
     only renders for a visitor who happens to have it installed, and everyone else falls through this
     stack - which is why it now names a real grotesque on every platform instead of ending at Arial,
     where macOS and iOS were landing on Helvetica. */
  --font: Inter, "Inter var", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/*
  SELF-HOSTING INTER — the one step left to make the approved typography hold for every visitor.
  Put the four woff2 files under wwwroot/fonts/ with exactly these names, then delete the comment
  markers around the block below. Nothing else has to change: --font already asks for Inter first and
  the CSP already allows font-src 'self'. Do NOT link fonts.googleapis.com; the CSP blocks it and the
  design kit §8.1 asks for a self-hosted copy in any case.

    wwwroot/fonts/inter-400.woff2   Inter Regular  (400)
    wwwroot/fonts/inter-500.woff2   Inter Medium   (500)
    wwwroot/fonts/inter-600.woff2   Inter SemiBold (600)
    wwwroot/fonts/inter-700.woff2   Inter Bold     (700)

@font-face { font-family: Inter; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/inter-400.woff2") format("woff2"); }
@font-face { font-family: Inter; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/inter-500.woff2") format("woff2"); }
@font-face { font-family: Inter; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/inter-600.woff2") format("woff2"); }
@font-face { font-family: Inter; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/inter-700.woff2") format("woff2"); }
*/

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--body); background: var(--bg); font-family: var(--font); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { margin-bottom: 0; color: var(--text); font-weight: 700; letter-spacing: -.025em; }
h1 { font-size: clamp(3.25rem, 5vw, 4.75rem); line-height: 1.06; }
h2 { font-size: clamp(2.1rem, 3.4vw, 2.75rem); line-height: 1.14; }
h3 { font-size: 1.25rem; line-height: 1.3; }
p { margin-bottom: 0; }
ul, ol { margin-top: 0; }
.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.narrow { width: min(calc(100% - 48px), 760px); margin-inline: auto; }
.section { padding-block: var(--section); }
.section.compact { padding-block: 28px; }
.surface { background: var(--surface); }
.dark-section { color: #fff; background: var(--dark); }
.dark-section h2, .dark-section h3 { color: #fff; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 999; padding: 10px 16px; color: #fff; background: var(--dark); }
.skip-link:focus { top: 12px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Sample-deployment notice. Deliberately reads as chrome around the site rather than part of it:
   dark ground, no brand colour, no rounding. A visitor should never mistake it for something the
   firm published. It is not sticky - it says what the page is once, then gets out of the way. */
.demo-banner { background: var(--dark); color: #fff; font-size: .8125rem; line-height: 1.55; padding: 10px 0; }
.demo-banner .container { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.demo-banner strong { flex: none; letter-spacing: .06em; text-transform: uppercase; font-size: .6875rem; padding: 3px 8px; border-radius: var(--radius-pill); background: rgba(255,255,255,.14); }
/* #c9ced6 on --dark measures 11.1:1; plain rgba() opacity would have dropped it below AA. */
.demo-banner span { flex: 1 1 320px; min-width: 0; color: #c9ced6; }
@media print { .demo-banner { display: none; } }
/* Inline counterpart to the banner, for the blocks a reader is most likely to quote back at the firm:
   the product spec table and the order box beneath it. */
.spec-sample-note { margin: 12px 0 0; padding: 10px 12px; border-left: 3px solid var(--muted); background: var(--surface); color: var(--body); font-size: .8125rem; line-height: 1.5; }

.site-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(226,229,233,.9); background: rgba(255,255,255,.96); transition: box-shadow .2s; }
.site-header.is-scrolled { box-shadow: 0 8px 22px rgba(20,24,29,.06); }
.header-inner { min-height: 80px; display: flex; align-items: center; gap: 32px; }
.brand { width: 150px; flex: 0 0 auto; }
.brand img { width: 100%; height: auto; }
.primary-nav { margin-left: auto; display: flex; align-items: center; gap: 26px; }
.primary-nav > a, .nav-dropdown > button { position: relative; padding: 29px 0 27px; border: 0; background: none; font-size: .86rem; font-weight: 650; cursor: pointer; }
.primary-nav > a::after, .nav-dropdown > button::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 20px; height: 2px; background: var(--accent); transition: right .2s; }
.primary-nav > a:hover::after, .primary-nav > a.active::after, .nav-dropdown > button:hover::after, .nav-dropdown > button.active::after { right: 0; }
.nav-dropdown { position: relative; }
.nav-dropdown > button { display: inline-flex; align-items: center; gap: 6px; }
.nav-caret { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; opacity: .55; transition: transform .2s, opacity .2s; }
.nav-dropdown:hover .nav-caret, .nav-dropdown.open .nav-caret, .nav-dropdown > button.active .nav-caret { opacity: 1; }
.nav-dropdown:hover .nav-caret, .nav-dropdown.open .nav-caret { transform: rotate(180deg); }
.dropdown-menu { position: absolute; top: calc(100% - 10px); left: -22px; width: 270px; padding: 10px; display: grid; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s; }
.nav-dropdown:hover .dropdown-menu, .nav-dropdown.open .dropdown-menu { opacity: 1; visibility: visible; transform: none; }
.dropdown-menu a { padding: 12px; border-radius: 4px; font-size: .83rem; }
.dropdown-menu a:hover { background: var(--surface); }
.header-actions { display: flex; align-items: center; gap: 22px; }
.language-switch { display: inline-flex; align-items: center; gap: 8px; font-size: .72rem; font-weight: 750; }
.language-switch i { width: 1px; height: 13px; background: var(--line); }
.language-switch a { color: var(--muted); }
.language-switch a.active, .language-switch a:hover { color: var(--text); }
.language-switch.light a { color: rgba(255,255,255,.6); }
.language-switch.light i { background: rgba(255,255,255,.25); }
.menu-toggle { display: none; }

.btn { min-height: 48px; padding: 11px 20px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: var(--radius-control); font-size: .87rem; font-weight: 700; line-height: 1.2; cursor: pointer; transition: color .2s, background .2s, border-color .2s; }
.btn-primary { color: #fff; background: var(--accent); }
.btn-primary:hover { background: var(--accent-hover); }
.btn-secondary { border-color: var(--dark); color: var(--dark); background: transparent; }
.btn-secondary:hover { color: #fff; background: var(--dark); }
.btn-secondary.light { color: #fff; border-color: rgba(255,255,255,.58); }
.btn-secondary.light:hover { color: var(--dark); background: #fff; }
.btn-sm { min-height: 40px; padding: 9px 15px; font-size: .8rem; }
.btn:disabled { cursor: not-allowed; opacity: .55; }
.button-row { margin-top: 30px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.button-row.centered { justify-content: center; }
.text-link, .section-link a { color: var(--text); font-weight: 700; }
.text-link:hover, .section-link a:hover { color: var(--accent); }
.kicker { margin-bottom: 15px; color: var(--accent); font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.kicker.light { color: #f18a8f; }
.lead { max-width: 790px; margin-top: 24px; color: var(--body); font-size: 1.15rem; line-height: 1.65; }
.section-head { max-width: 820px; margin-bottom: 34px; }
.section-head > p:last-child { max-width: 730px; margin-top: 18px; color: var(--muted); font-size: 1.04rem; }
.section-head.split { max-width: none; display: grid; grid-template-columns: 1fr .7fr; align-items: end; gap: 80px; }
.section-head.split > p { margin-bottom: 2px; }
.section-link { margin-top: 30px; padding-top: 18px; display: flex; justify-content: flex-end; border-top: 1px solid var(--line); }
.section-link.multi { justify-content: space-between; }
.image-note, .table-note { margin-top: 18px; color: var(--muted); font-size: .78rem; }

.home-hero {
  padding: 42px 0 54px;
  background: var(--surface);
}
.hero-grid { display: grid; grid-template-columns: 7fr 5fr; align-items: center; gap: 72px; }
.hero-copy { padding: 24px 0 44px; }
.hero-copy h1 { max-width: 730px; }
.hero-copy .lead { max-width: 680px; }
.check-list { margin: 30px 0 0; padding: 0; display: grid; gap: 11px; list-style: none; }
.check-list li { position: relative; padding-left: 28px; color: var(--text); font-size: .91rem; font-weight: 600; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--accent); font-weight: 900; }
.hero-product, .feature-product { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); }
.hero-product { max-height: 610px; aspect-ratio: 4 / 5; }
.hero-product img, .feature-product img { width: 100%; height: 100%; object-fit: cover; }
.hero-product figcaption, .feature-product figcaption, .wide-media figcaption, .generated-thumb span, .before-after figcaption { position: absolute; left: 12px; bottom: 12px; padding: 7px 10px; color: #fff; border-radius: 4px; background: rgba(20,24,29,.82); font-size: .7rem; }
.facts-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px; }
.home-hero .facts-grid { margin-top: 10px; padding-top: 36px; border-top: 1px solid var(--line); }
.page-facts { padding-block: 40px; border-bottom: 1px solid var(--line); }
.stat { position: relative; padding-top: 22px; }
.stat::before { content: ""; position: absolute; left: 0; top: 0; width: 28px; height: 3px; border-radius: 2px; background: var(--accent); }
.stat strong { display: block; color: var(--text); font-size: clamp(2rem, 3.2vw, 2.85rem); font-weight: 750; line-height: 1; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.stat strong em { font-style: normal; font-size: .5em; font-weight: 800; color: var(--accent); letter-spacing: 0; }
.stat span { display: block; max-width: 230px; margin-top: 12px; color: var(--body); font-size: .88rem; font-weight: 600; line-height: 1.42; }

.card-grid { display: grid; gap: var(--gutter); }
.card-grid.four { grid-template-columns: repeat(4, 1fr); }
.card-grid.three { grid-template-columns: repeat(3, 1fr); }
.card-grid.two { grid-template-columns: repeat(2, 1fr); }
.icon-card, .policy-card, .doc-card, .team-grid article { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.icon-card { display: flex; flex-direction: column; }
.line-icon { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-size: .67rem; font-weight: 800; letter-spacing: .04em; }
.icon-card h3 { margin-top: 22px; }
.icon-card p { margin-top: 10px; color: var(--muted); font-size: .87rem; }
.icon-card a { margin-top: auto; padding-top: 18px; color: var(--text); font-size: .8rem; font-weight: 700; }
.icon-card a:hover { color: var(--accent); }
.ui-icon { flex: 0 0 auto; width: 46px; height: 46px; display: grid; place-items: center; color: var(--accent); border-radius: var(--radius-control); background: var(--accent-soft); }
.ui-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ui-icon.sm { width: 38px; height: 38px; border-radius: var(--radius-control); }
.ui-icon.sm svg { width: 19px; height: 19px; }
.ui-icon.plain { color: var(--text); border: 1px solid var(--line); background: #fff; }
.solution-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.solution-card { padding: 26px 22px 22px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.solution-card:hover { border-color: rgba(20,24,29,.5); box-shadow: 0 14px 32px rgba(20,24,29,.07); transform: translateY(-3px); }

.solution-card h3 { min-height: 2.6em; margin-top: 20px; font-size: 1.05rem; line-height: 1.3; }
.solution-card p { margin-top: 9px; color: var(--muted); font-size: .85rem; }
.solution-more { margin-top: auto; padding-top: 20px; display: inline-flex; align-items: center; gap: 7px; color: var(--text); font-size: .8rem; font-weight: 700; }
.solution-more svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.solution-card:hover .solution-more { color: var(--accent); }
.solution-card:hover .solution-more svg { transform: translateX(4px); }
.solution-card.is-open { border-style: dashed; border-color: #c6ccd4; background: linear-gradient(180deg, #fbfcfd, #fff); }
.solution-card.is-open .ui-icon { color: var(--dark); border: 1px solid var(--line); background: #fff; }

.card-arrow { margin-top: 14px; display: inline-flex; align-items: center; gap: 7px; color: var(--text); font-size: .8rem; font-weight: 700; }
.card-arrow svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.product-card:hover .card-arrow, .category-card:hover .card-arrow { color: var(--accent); }
.product-card:hover .card-arrow svg, .category-card:hover .card-arrow svg { transform: translateX(4px); }
.category-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.category-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.category-card:hover { border-color: rgba(20,24,29,.45); box-shadow: 0 14px 32px rgba(20,24,29,.07); transform: translateY(-3px); }
.category-body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.product-media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); }
.category-card .product-media { border: 0; border-radius: 0; aspect-ratio: 16 / 10; }
.product-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.category-card:hover .product-media img, .product-card:hover .product-media img { transform: scale(1.025); }

.category-card h3 { font-size: 1.15rem; }

.category-card p { margin-top: 10px; color: var(--muted); font-size: .86rem; }
.category-card .card-arrow { margin-top: auto; padding-top: 18px; }
.section-head.with-actions { max-width: none; margin-bottom: 22px; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.section-head.with-actions > div { max-width: 840px; }
.slider-nav { flex: 0 0 auto; display: flex; gap: 8px; }
.slider-nav[hidden] { display: none; }
.slider-nav button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; transition: color .2s, background .2s, border-color .2s, opacity .2s; }
.slider-nav button:hover:not(:disabled) { color: #fff; border-color: var(--dark); background: var(--dark); }
.slider-nav button:disabled { opacity: .32; cursor: default; }
.slider-nav svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.chip-nav { margin-bottom: 26px; display: flex; flex-wrap: wrap; gap: 8px; }
.chip-nav > * { padding: 8px 14px; border: 1px solid var(--line); border-radius: var(--radius-pill); color: var(--body); background: #fff; font-size: .78rem; font-weight: 650; transition: color .2s, background .2s, border-color .2s; }
.chip-nav a:hover { color: var(--text); border-color: var(--dark); }
.chip-nav.spaced { margin-top: 30px; margin-bottom: 0; }
.chip-nav .active { color: #fff; border-color: var(--dark); background: var(--dark); }
.slider { position: relative; }
.slider-track { display: flex; gap: 20px; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x proximity; scrollbar-width: none; }
.slider-track::-webkit-scrollbar { width: 0; height: 0; }
.slide-card { min-width: 0; flex: 0 0 calc((100% - 60px) / 4); scroll-snap-align: start; }
.slide-media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); }
.slide-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.slide-card:hover .slide-media img { transform: scale(1.045); }
.slide-code { position: absolute; left: 12px; top: 12px; padding: 5px 10px; color: var(--text); border-radius: var(--radius-pill); background: rgba(255,255,255,.93); font-size: .68rem; font-weight: 750; letter-spacing: .04em; }
.slide-card h3 { margin-top: 15px; font-size: 1.02rem; transition: color .2s; }
.slide-card:hover h3 { color: var(--accent); }
.slide-card p { margin-top: 5px; color: var(--text); font-size: .8rem; font-weight: 650; }
.slide-card small { display: block; margin-top: 4px; color: var(--muted); font-size: .74rem; }
.feature-split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 64px; }
.feature-split.reverse > :first-child { order: 1; }
.feature-product { aspect-ratio: 4 / 5; }
.step-list { margin: 32px 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.step-list li { padding: 14px 0; display: grid; grid-template-columns: 46px 1fr; gap: 14px; border-bottom: 1px solid var(--line); }
.step-list li > span { width: 36px; height: 36px; display: grid; place-items: center; color: #fff; border-radius: 50%; background: var(--dark); font-size: .7rem; font-weight: 800; }
.step-list h3 { font-size: 1rem; }
.step-list p { margin-top: 5px; color: var(--muted); font-size: .84rem; }
.step-list small { display: inline-block; margin-top: 7px; color: var(--accent); font-size: .7rem; font-weight: 750; }
.step-flow { margin: 28px 0 0; padding: 0; display: grid; gap: 10px; list-style: none; }
.step-flow li { padding: 15px 18px; display: flex; align-items: center; gap: 16px; border: 1px solid var(--line); border-radius: var(--radius-control); background: #fff; transition: border-color .2s, transform .2s; }
.step-flow li:hover { border-color: rgba(20,24,29,.5); transform: translateX(3px); }
.step-flow li > span { flex: 0 0 auto; width: 26px; color: var(--accent); font-size: .78rem; font-weight: 800; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.step-flow h3 { font-size: 1.02rem; }
.wide-media { position: relative; max-height: 430px; overflow: hidden; aspect-ratio: 16 / 9; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface-2); }
.wide-media > img { width: 100%; height: 100%; object-fit: cover; }
.production-layout { display: grid; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 64px; }
.production-intro > p:not(.kicker) { margin-top: 20px; color: var(--muted); font-size: 1.02rem; }
.production-intro .button-row { margin-top: 28px; }
.production-facts { margin: 30px 0 0; display: grid; }
.production-facts > div { padding: 15px 0; display: grid; grid-template-columns: minmax(104px, .32fr) 1fr; gap: 20px; border-top: 1px solid var(--line); }
.production-facts > div:last-child { border-bottom: 1px solid var(--line); }
.production-facts dt { color: var(--text); font-size: .84rem; font-weight: 750; }
.production-facts dd { margin: 0; color: var(--muted); font-size: .85rem; }
.production-mosaic { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.production-mosaic figure { position: relative; overflow: hidden; aspect-ratio: 1; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); }
.production-mosaic figure:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.production-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.production-mosaic figure:hover img { transform: scale(1.04); }
.production-mosaic figcaption { position: absolute; left: 12px; bottom: 12px; padding: 6px 12px; color: var(--text); border-radius: var(--radius-pill); background: rgba(255,255,255,.93); font-size: .72rem; font-weight: 700; }
.production-mosaic .image-note { grid-column: 1 / -1; margin-top: 0; }
.global-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 64px; }
.global-grid > div:first-child > p:not(.kicker) { margin: 22px 0 28px; color: rgba(255,255,255,.65); }
.location-grid { display: grid; gap: 18px; }
.location-grid.light-cards { grid-template-columns: 1fr 1fr; }
.location-card { min-height: 178px; padding: 22px; display: grid; grid-template-columns: 52px 1fr; gap: 18px; border: 1px solid rgba(255,255,255,.23); border-radius: var(--radius-card); background: rgba(255,255,255,.05); }
.location-card > span, .location-copy > span { width: 48px; height: 48px; display: grid; place-items: center; color: var(--dark); border-radius: 50%; background: #fff; font-size: .7rem; font-weight: 800; }
.location-card small { color: #f18a8f; font-size: .7rem; font-weight: 750; text-transform: uppercase; }
.location-card h3, .location-card h2 { margin-top: 5px; color: #fff; }
.location-card h2 { font-size: 1.32rem; line-height: 1.25; }
.location-card p { margin-top: 9px; color: rgba(255,255,255,.6); font-size: .78rem; }
.location-card a { display: block; margin-top: 8px; color: #fff; font-size: .8rem; font-weight: 650; }
.light-cards .location-card { border-color: var(--line); background: #fff; }
.light-cards .location-card > span { color: #fff; background: var(--dark); }
.light-cards .location-card small { color: var(--accent); }
.light-cards .location-card h2, .light-cards .location-card h3, .light-cards .location-card a { color: var(--text); }
.light-cards .location-card p { color: var(--muted); }

.page-title, .page-hero {
  padding: 46px 0 54px;
  border-bottom: 1px solid rgba(216,35,42,.14);
  background: var(--surface);
}
.page-title h1 { max-width: 1000px; }
.page-title .kicker + h1 { max-width: 1050px; }
.page-hero-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 56px; }
.breadcrumb { margin-bottom: 24px; display: flex; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: .75rem; }
.breadcrumb a:hover { color: var(--accent); }
.page-hero .wide-media { aspect-ratio: 16 / 10; }
.text-split, .two-col { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; }
.capacity-factors { padding: 28px 30px; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.capacity-factors h3 { font-size: 1.15rem; }
.capacity-factors .check-list { margin-top: 20px; }
.capacity-factors .table-note { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.lead-prose p + p { margin-top: 20px; }
.timeline { position: relative; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; }
.timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 16px; height: 1px; background: var(--line); }
.timeline li { position: relative; padding: 52px 28px 0 0; }
.timeline li::before { content: ""; position: absolute; top: 10px; left: 0; width: 13px; height: 13px; border: 5px solid var(--surface); border-radius: 50%; background: var(--accent); }
.timeline strong { display: block; color: var(--text); font-size: 1.45rem; }
.timeline span { display: block; margin-top: 8px; font-size: .85rem; }
.media-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.media-card > img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.media-card > div { padding: 18px 20px; }
.media-card span { color: var(--accent); font-size: .72rem; font-weight: 800; }
.media-card h3 { margin-top: 16px; }
.media-card p { margin-top: 8px; color: var(--muted); font-size: .83rem; }
.team-grid article span { width: 52px; height: 52px; display: grid; place-items: center; color: #fff; border-radius: 50%; background: var(--dark); font-size: .75rem; font-weight: 750; }
.team-grid h3 { margin-top: 22px; }
.team-grid p { margin-top: 5px; color: var(--muted); font-size: .8rem; }

.filter-bar { margin-bottom: 28px; padding: 14px; display: flex; align-items: center; gap: 8px; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.filter-bar strong { margin-right: 8px; white-space: nowrap; font-size: .8rem; }
.filter-bar button { padding: 7px 12px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: var(--radius-pill); background: #fff; font-size: .73rem; cursor: pointer; }
.filter-bar button.active { color: #fff; border-color: var(--dark); background: var(--dark); }
.filter-bar select { margin-left: auto; min-width: 160px; padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--radius-control); background: #fff; }
.product-empty { margin-top: 18px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px 20px; }
.product-grid.three-col { grid-template-columns: repeat(3, 1fr); }
.product-grid.four-col { grid-template-columns: repeat(4, 1fr); }
.product-card.hidden { display: none; }
.product-info { padding: 15px 3px 0; }
.product-info small { color: var(--accent); font-size: .7rem; font-weight: 750; letter-spacing: .05em; }
.product-info h3 { margin-top: 4px; font-size: 1.05rem; }
.product-info p { margin-top: 5px; color: var(--muted); font-size: .77rem; }
.product-info .card-arrow { margin-top: 10px; font-size: .76rem; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.choice-grid article { padding: 32px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.choice-grid .kicker { margin: 20px 0 12px; }
.choice-grid h3 { font-size: 1.55rem; }
.choice-grid .check-list { margin-top: 20px; }
.choice-grid .button-row { margin-top: auto; padding-top: 26px; }

.accent-choice { border-color: #f2c8ca; background: linear-gradient(180deg, var(--accent-soft), #fff 78%); }
.collection-bar { margin-bottom: 26px; padding: 14px 16px; display: flex; align-items: center; gap: 18px; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.collection-search { flex: 1; min-width: 0; min-height: 44px; padding: 10px 14px; border: 1px solid #cfd4da; border-radius: var(--radius-control); }
.collection-search:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.collection-count { flex: 0 0 auto; color: var(--muted); font-size: .78rem; white-space: nowrap; }
.chip-row { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 8px; }
.chip-row span { padding: 7px 12px; border: 1px solid var(--line); border-radius: var(--radius-pill); color: var(--text); background: #fff; font-size: .75rem; font-weight: 650; }
.chip-row.dark span { border-color: rgba(255,255,255,.25); color: #fff; background: rgba(255,255,255,.06); }
.case-grid article, .catalogue-grid article, .location-showcase > article { transition: border-color .2s, box-shadow .2s, transform .2s; }
.spec-list { margin: 0; border-top: 1px solid var(--line); }
.spec-list > div { padding: 15px 0; display: grid; grid-template-columns: minmax(110px, .42fr) 1fr; gap: 18px; border-bottom: 1px solid var(--line); }
.spec-list dt { color: var(--muted); font-size: .78rem; }
.spec-list dd { margin: 0; color: var(--text); font-size: .84rem; font-weight: 600; }
.spec-list .spec-head { padding: 0 0 10px; }
.spec-list .spec-head dt, .spec-list .spec-head dd { color: var(--muted); font-size: .7rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.product-sticky { position: sticky; top: 80px; z-index: 90; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.95); }
.product-sticky .container { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: .8rem; }
.product-detail-top { padding-top: 42px; }
.detail-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 52px; }
.product-gallery .product-media.main { aspect-ratio: 4 / 5; }
.product-gallery-note { margin-top: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius-control); color: var(--muted); font-size: .78rem; background: var(--surface); }
.thumb-grid > * { position: relative; overflow: hidden; aspect-ratio: 1; border: 1px solid var(--line); border-radius: var(--radius-control); }
.thumb-grid .product-media { aspect-ratio: 1; }
.generated-thumb img { width: 100%; height: 100%; object-fit: cover; }
.generated-thumb span { left: 6px; bottom: 6px; padding: 4px 6px; font-size: .58rem; }
.detail-copy { padding-top: 8px; }
.detail-copy h1 { font-size: clamp(2.75rem, 4vw, 4rem); }
.product-code { margin-top: 9px; color: var(--accent); font-weight: 750; letter-spacing: .05em; }
.detail-copy .spec-list { margin-top: 28px; }
.order-box { margin-top: 24px; padding: 20px; display: grid; gap: 5px; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--surface); font-size: .8rem; }

.before-after { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.before-after figure { position: relative; overflow: hidden; aspect-ratio: 4 / 5; border-radius: var(--radius-card); background: var(--surface); }
.before-after img { width: 100%; height: 100%; object-fit: cover; }
.process-grid { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); border: 1px solid var(--line); border-radius: var(--radius-card); overflow: hidden; list-style: none; }
.process-grid > li, .process-grid > article { padding: 22px; border-right: 1px solid var(--line); background: #fff; }
.process-grid > :last-child { border-right: 0; }
.process-grid span { color: var(--accent); font-size: .72rem; font-weight: 800; }
.process-grid h3 { margin-top: 20px; font-size: 1rem; }
.process-grid p { margin-top: 9px; color: var(--muted); font-size: .78rem; }
.callout { margin-top: 26px; padding: 14px 18px; width: fit-content; max-width: 640px; color: var(--text); border: 1px solid #f0c6c8; border-left: 3px solid var(--accent); border-radius: var(--radius-control); background: var(--accent-soft); font-size: .84rem; }
.process-timeline { margin: 0; padding: 0; display: flex; gap: 18px; overflow-x: auto; list-style: none; scroll-snap-type: x proximity; }
.process-timeline > li { min-width: 0; padding: 0; display: flex; flex: 0 0 calc((100% - 36px) / 3); flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; scroll-snap-align: start; }
.process-figure { overflow: hidden; aspect-ratio: 16 / 10; background: var(--surface); }
.process-figure img { width: 100%; height: 100%; object-fit: cover; }
.process-body { padding: 22px 24px 24px; display: flex; flex: 1; flex-direction: column; }
.process-step-label { display: flex; align-items: baseline; gap: 10px; color: var(--accent); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.process-step-label b { font-size: 1.4rem; font-weight: 800; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.process-body h3 { margin-top: 10px; font-size: 1.16rem; }
.process-body > p:not(.process-step-label) { margin-top: 10px; color: var(--muted); font-size: .87rem; }
.process-meta { margin: auto 0 0; padding-top: 20px; display: grid; }
.process-meta > div { padding: 11px 0 0; display: grid; grid-template-columns: minmax(84px, .42fr) 1fr; gap: 12px; font-size: .78rem; }
.process-meta > div + div { margin-top: 10px; border-top: 1px solid var(--line); }
.process-meta dt { color: var(--muted); }
.process-meta dd { margin: 0; color: var(--text); font-weight: 650; }
.media-grid.five { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.media-grid.five .media-card > img { aspect-ratio: 4 / 3; }
.media-grid.five .media-card > div { padding: 18px; }

.policy-card { display: flex; align-items: center; gap: 20px; }
.policy-card span { color: var(--accent); font-size: .72rem; font-weight: 800; }
.policy-card p { color: var(--text); font-weight: 700; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
table { width: 100%; border-collapse: collapse; min-width: 780px; }
th, td { padding: 18px 20px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); background: var(--surface); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
td { font-size: .82rem; }
tbody tr:last-child td { border-bottom: 0; }
.four-step { grid-template-columns: repeat(4, 1fr); }
.doc-card { display: grid; grid-template-columns: 50px 1fr; gap: 18px; }
.doc-card h3 { font-size: 1rem; }
.doc-card p { margin-top: 9px; font-size: .8rem; }
.doc-card small { display: block; margin-top: 7px; color: var(--muted); font-size: .7rem; }

.ui-icon.on-dark { width: 46px; height: 46px; display: grid; place-items: center; flex: 0 0 auto; color: var(--dark); border: 0; border-radius: 50%; background: #fff; font-size: .72rem; font-weight: 800; }
.origin-node { padding: 26px 28px; display: flex; align-items: flex-start; gap: 22px; border: 1px solid rgba(255,255,255,.22); border-radius: var(--radius-card); background: rgba(255,255,255,.06); }
.origin-label { color: #f18a8f; font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.origin-node h3 { margin-top: 8px; color: #fff; font-size: 1.25rem; }
.origin-node > div > p:not(.origin-label) { margin-top: 9px; max-width: 720px; color: rgba(255,255,255,.62); font-size: .88rem; }
.route-split { position: relative; margin-top: 18px; padding-top: 34px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.route-split::before { content: ""; position: absolute; left: 50%; top: 0; width: 1px; height: 16px; background: rgba(255,255,255,.3); }
.route-split::after { content: ""; position: absolute; left: 25%; right: 25%; top: 16px; height: 1px; border-top: 1px solid rgba(255,255,255,.3); border-left: 1px solid rgba(255,255,255,.3); border-right: 1px solid rgba(255,255,255,.3); border-radius: 8px 8px 0 0; height: 18px; }
.route-option { padding: 26px 28px 28px; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.22); border-radius: var(--radius-card); background: rgba(255,255,255,.05); }
.route-tag { align-self: flex-start; padding: 5px 12px; color: #fff; border-radius: var(--radius-pill); background: var(--accent); font-size: .66rem; font-weight: 800; letter-spacing: .09em; }
.route-option h3 { margin-top: 16px; color: #fff; font-size: 1.2rem; }
.route-option > p { margin-top: 10px; color: rgba(255,255,255,.62); font-size: .87rem; }
.route-option .check-list { margin-top: 20px; }
.route-option .check-list li { color: rgba(255,255,255,.86); }
.route-note { margin-top: 26px; color: rgba(255,255,255,.6); font-size: .82rem; }
.route-note + .chip-row { margin-top: 22px; }
.location-showcase { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.location-showcase > article { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); }
.location-showcase .wide-media { border: 0; border-radius: 0; }
.location-copy { padding: 28px; }
.location-copy > span { color: #fff; background: var(--dark); }
.location-copy h2 { margin-top: 22px; font-size: 1.65rem; }
.location-copy p { margin-top: 12px; }
.location-copy a { display: inline-block; margin-top: 8px; color: var(--accent); font-weight: 700; }
.location-copy ul { margin: 20px 0 0; padding-left: 20px; font-size: .83rem; }

.catalogue-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.catalogue-card { padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.catalogue-card h2 { margin-top: 20px; font-size: 1.28rem; }
.catalogue-meta { margin: 20px 0 0; display: grid; }
.catalogue-meta > div { padding: 10px 0; display: grid; grid-template-columns: minmax(74px, .38fr) 1fr; gap: 14px; border-top: 1px solid var(--line); }
.catalogue-meta dt { color: var(--muted); font-size: .76rem; }
.catalogue-meta dd { margin: 0; color: var(--text); font-size: .8rem; font-weight: 600; }
.catalogue-card .button-row { margin-top: auto; padding-top: 24px; }
.mini-category-row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.mini-category-row a { min-width: 0; }
.mini-category-row img { width: 100%; aspect-ratio: 1; object-fit: cover; border: 1px solid var(--line); border-radius: var(--radius-control); }
.mini-category-row span { display: block; margin-top: 9px; color: var(--text); font-size: .73rem; font-weight: 650; }
.form-split, .contact-grid, .quote-layout { display: grid; grid-template-columns: .7fr 1.3fr; align-items: start; gap: 56px; }
.form-card { padding: 34px; display: grid; gap: 19px; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.form-card h2 { font-size: 1.55rem; }
.form-card > p { margin-top: -10px; color: var(--muted); font-size: .85rem; }
.form-card label { display: grid; gap: 7px; color: var(--text); font-size: .8rem; font-weight: 650; }
.form-card input:not([type=checkbox]):not([type=radio]), .form-card select, .form-card textarea, .faq-search input { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #cfd4da; border-radius: var(--radius-control); color: var(--text); background: #fff; outline: none; }
.form-card textarea { min-height: 100px; resize: vertical; }
.form-card input:focus, .form-card select:focus, .form-card textarea:focus, .faq-search input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.form-card label > span.field-validation-error, .form-card > span.field-validation-error { color: var(--error); font-size: .7rem; font-weight: 500; }
.validation-summary { color: var(--error); font-size: .8rem; }
.validation-summary ul { margin: 0; padding-left: 20px; }
.check-control { display: flex !important; grid-template-columns: none !important; align-items: flex-start; gap: 10px !important; font-weight: 500 !important; }
.check-control input { margin-top: 4px; width: 17px; height: 17px; accent-color: var(--accent); }
.check-control.inline { align-self: end; min-height: 48px; align-items: center; }
.check-control.inline input { margin-top: 0; }
.hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.alert { padding: 14px 16px; border-radius: var(--radius-control); font-size: .8rem; }
.alert.success { color: #12653f; border: 1px solid #a8dac2; background: #eaf7f0; }
.alert.info { border: 1px solid var(--line); background: var(--surface); }

.faq-search { max-width: 720px; margin-top: 32px; display: block; }
.faq-layout { display: grid; grid-template-columns: 260px 1fr; gap: 60px; }
.faq-nav { position: sticky; top: 110px; align-self: start; display: grid; }
.faq-nav a { padding: 11px 0; border-bottom: 1px solid var(--line); font-size: .78rem; font-weight: 650; }
.faq-nav a:hover { color: var(--accent); }
.faq-groups { display: grid; gap: 55px; }
.faq-item { border-top: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-item summary { position: relative; padding: 19px 45px 19px 0; color: var(--text); font-weight: 650; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span::before, .faq-item summary span::after { content: ""; position: absolute; right: 5px; top: 50%; width: 13px; height: 1px; background: var(--text); }
.faq-item summary span::after { transform: rotate(90deg); }
.faq-item[open] summary span::after { transform: none; }
.faq-item p { padding: 0 55px 20px 0; color: var(--muted); }
.faq-item.filtered-out { display: none; }
.cta-inline { padding: 38px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; }
.cta-inline h2 { font-size: 1.7rem; }
.cta-inline p { margin-top: 8px; color: var(--muted); }
.cta-inline .button-row { margin-top: 0; }
.contact-grid { grid-template-columns: .8fr 1.2fr; }
.location-stack { display: grid; gap: 18px; }
.contact-locations .location-stack { grid-template-columns: 1fr 1fr; }
.contact-form { grid-template-columns: 1fr 1fr; }
.contact-form > h2, .contact-form > p, .contact-form > .validation-summary, .contact-form > .alert, .contact-form > .wide-field, .contact-form > .hp { grid-column: 1 / -1; }
.location-stack .location-card { border-color: var(--line); background: var(--surface); }
.location-stack .location-card > span { color: #fff; background: var(--dark); }
.location-stack .location-card h2, .location-stack .location-card a { color: var(--text); }
.location-stack .location-card p { color: var(--muted); }
.quick-links { margin-top: 40px; }
.quick-links a { padding: 22px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.quick-links a:hover { border-color: rgba(20,24,29,.45); box-shadow: 0 14px 32px rgba(20,24,29,.07); transform: translateY(-3px); }
.quick-links a:hover .card-arrow { color: var(--accent); }
.quick-links a:hover .card-arrow svg { transform: translateX(4px); }
.quick-links strong { margin-top: 16px; color: var(--text); font-size: 1rem; }
.quick-links .card-arrow { margin-top: 10px; }

.quote-title { padding-bottom: 34px; }
.quote-section { padding-block: 54px; }
.step-indicator { max-width: 650px; margin: 38px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; }
.step-indicator li { position: relative; display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: .75rem; font-weight: 650; }
.step-indicator li::after { content: ""; height: 1px; flex: 1; margin-inline: 10px; background: var(--line); }
.step-indicator li:last-child::after { display: none; }
.step-indicator span { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #fff; }
.step-indicator li.active { color: var(--text); }
.step-indicator li.active span, .step-indicator li.complete span { color: #fff; border-color: var(--accent); background: var(--accent); }
.quote-layout { grid-template-columns: 1fr 360px; }
.quote-form { scroll-margin-top: 98px; }
.quote-form fieldset { margin: 0; padding: 0; display: grid; gap: 16px; border: 0; }
.quote-form.js-enhanced fieldset { display: none; }
.quote-form.js-enhanced fieldset.active { display: grid; }
.quote-form legend { margin-bottom: 20px; display: flex; align-items: center; gap: 13px; color: var(--text); font-size: 1.5rem; font-weight: 700; outline: none; }
.quote-form legend span { width: 38px; height: 38px; display: grid; place-items: center; color: #fff; border-radius: 50%; background: var(--dark); font-size: .72rem; }
.choice-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.choice-cards label { cursor: pointer; }
.choice-cards input { position: absolute; opacity: 0; pointer-events: none; }
.choice-cards label > span { min-height: 90px; padding: 16px; display: flex; flex-direction: column; justify-content: center; border: 1px solid var(--line); border-radius: var(--radius-control); }
.choice-cards input:checked + span { border-color: var(--accent); background: var(--accent-soft); }
.choice-cards strong { font-size: .84rem; }
.choice-cards small { margin-top: 5px; color: var(--muted); font-size: .68rem; font-weight: 500; }
.file-drop { position: relative; min-height: 128px; padding: 20px 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 1px dashed #aeb5bd; border-radius: var(--radius-card); text-align: center; background: var(--surface); transition: border-color .2s, background .2s; }
.file-drop:hover { border-color: var(--accent); background: var(--accent-soft); }
.file-drop:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.file-drop input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.file-drop strong { margin-top: 12px; color: var(--text); font-size: .9rem; }
.file-drop small { color: var(--muted); font-size: .74rem; font-weight: 500; }
.file-list:not(:empty) { margin-top: 10px; padding: 6px 12px; color: var(--text); border-radius: var(--radius-pill); background: #fff; font-size: .74rem; font-weight: 650; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-actions { padding-top: 14px; display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--line); }
.quote-aside { position: sticky; top: 110px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); }
.quote-aside h2 { font-size: 1.35rem; }
.quote-aside ol { margin: 25px 0 0; padding: 0; display: grid; gap: 18px; list-style: none; }
.quote-aside li { display: grid; grid-template-columns: 34px 1fr; gap: 10px; font-size: .8rem; }
.quote-aside li span { color: var(--accent); font-weight: 800; }
.quote-aside hr { margin: 25px 0; border: 0; border-top: 1px solid var(--line); }
.quote-aside small { display: block; margin-top: 18px; color: var(--muted); }
.thank-you { text-align: center; }
.thank-you .container { max-width: 960px; }
.success-mark { width: 72px; height: 72px; margin: 0 auto 24px; display: grid; place-items: center; color: #fff; border-radius: 50%; background: var(--success); font-size: 2rem; }
.thank-you .lead { margin-inline: auto; }
.next-steps { margin-top: 50px; text-align: left; }
.next-steps article { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-card); }
.next-steps span { color: var(--accent); font-size: .7rem; font-weight: 800; }
.next-steps h2 { margin-top: 30px; font-size: 1.2rem; }
.next-steps p { margin-top: 8px; color: var(--muted); font-size: .8rem; }
.request-summary { margin-top: 35px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-card); text-align: left; }
.request-summary h2 { margin-bottom: 22px; font-size: 1.4rem; }

.case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.case-grid article { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); }
.case-media { overflow: hidden; aspect-ratio: 16 / 10; background: var(--surface); }
.case-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.case-grid article:hover img { transform: scale(1.025); }
.case-grid article > a > div:last-child { padding: 24px; }
.case-grid span { color: var(--accent); font-size: .7rem; font-weight: 750; }
.case-grid h2 { margin-top: 12px; font-size: 1.35rem; }
.case-grid p { margin-top: 10px; color: var(--muted); font-size: .82rem; }
.case-grid strong { display: inline-block; margin-top: 18px; font-size: .78rem; }
.project-flow { max-width: 850px; }

/* --accent on --accent-soft measures 4.38:1: enough for an icon, short of AA for this 11px label, so the
   darker accent tone carries the text instead (5.70:1). */
.post-category { display: inline-block; padding: 5px 11px; color: var(--accent-hover); border-radius: var(--radius-pill); background: var(--accent-soft); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; color: var(--muted); font-size: .78rem; }
.post-feature { display: grid; grid-template-columns: 1.05fr .95fr; align-items: stretch; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; transition: border-color .2s, box-shadow .2s; }
.post-feature:hover { border-color: rgba(20,24,29,.45); box-shadow: 0 18px 40px rgba(20,24,29,.08); }
.post-feature-media { overflow: hidden; min-height: 340px; background: var(--surface); }
.post-feature-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.post-feature:hover .post-feature-media img { transform: scale(1.035); }
.post-feature-body { padding: 40px 44px; display: flex; flex-direction: column; justify-content: center; }
.post-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.post-featured-flag { padding: 5px 11px; color: #fff; border-radius: var(--radius-pill); background: var(--dark); font-size: .66rem; font-weight: 800; letter-spacing: .08em; }
.post-feature-body h2 { margin-top: 20px; font-size: clamp(1.6rem, 2.4vw, 2.15rem); }
.post-feature-body > p:not(.post-tags):not(.post-meta) { margin-top: 14px; color: var(--muted); font-size: .95rem; }
.post-feature-body .post-meta { margin-top: 18px; }
.post-feature-body .card-arrow { margin-top: 22px; }
.post-feature:hover .card-arrow { color: var(--accent); }
.post-feature:hover .card-arrow svg { transform: translateX(4px); }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.post-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.post-card:hover { border-color: rgba(20,24,29,.45); box-shadow: 0 14px 32px rgba(20,24,29,.07); transform: translateY(-3px); }
.post-card > a { display: flex; height: 100%; flex-direction: column; }
.post-media { overflow: hidden; aspect-ratio: 16 / 10; background: var(--surface); }
.post-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.post-card:hover .post-media img { transform: scale(1.04); }
.post-body { padding: 22px 24px 24px; display: flex; flex: 1; flex-direction: column; }
.post-body h3 { margin-top: 16px; font-size: 1.14rem; line-height: 1.32; }
.post-body > p:not(.post-meta) { margin-top: 10px; color: var(--muted); font-size: .86rem; }
.post-body .post-meta { margin-top: auto; padding-top: 18px; }
.post-card.is-hidden { display: none; }
.post-empty { margin-top: 8px; color: var(--muted); font-size: .85rem; }
.post-header { padding: 46px 0 30px; }
.post-header-inner > * { max-width: 840px; }
.post-header .post-category { margin-bottom: 18px; }
.post-header h1 { font-size: clamp(2.3rem, 4vw, 3.4rem); }
.post-header .lead { margin-top: 18px; }
.post-byline { margin-top: 28px; padding-top: 22px; display: flex; align-items: center; gap: 14px; border-top: 1px solid var(--line); }
.post-byline strong { display: block; color: var(--text); font-size: .88rem; }
.post-byline span { display: block; margin-top: 3px; color: var(--muted); font-size: .78rem; }
.post-cover { position: relative; overflow: hidden; border-radius: var(--radius-card); background: var(--surface); }
.post-cover img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.post-cover figcaption { position: absolute; left: 14px; bottom: 14px; padding: 6px 11px; color: #fff; border-radius: var(--radius-pill); background: rgba(20,24,29,.78); font-size: .68rem; }
.post-layout { padding-block: 56px 70px; display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: start; gap: 70px; }
.post-layout.no-toc { grid-template-columns: minmax(0, 1fr); }
.post-layout.no-toc .post-body-copy { max-width: 760px; margin-inline: auto; }
.post-toc { position: sticky; top: 108px; padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); }
.post-toc-title { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .09em; }
.post-toc ol { margin: 14px 0 0; padding-left: 18px; display: grid; gap: 10px; }
.post-toc a { color: var(--body); font-size: .82rem; }
.post-toc a:hover { color: var(--accent); }
.post-body-copy { max-width: 720px; font-size: 1.06rem; line-height: 1.78; }
.post-body-copy h2 { margin: 46px 0 16px; font-size: 1.75rem; scroll-margin-top: 110px; }
.post-body-copy h2:first-child { margin-top: 0; }
.post-body-copy p + p { margin-top: 22px; }
.post-cta { margin-top: 52px; padding: 34px 36px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); }
.post-cta h2 { margin: 0 0 12px; font-size: 1.5rem; }
.post-cta p { color: var(--muted); font-size: .92rem; }
.legal-layout { display: grid; grid-template-columns: 230px 1fr; gap: 70px; }
.legal-toc { position: sticky; top: 110px; align-self: start; display: grid; }
.legal-toc a { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: .8rem; }
.legal-copy { max-width: 800px; }
.legal-copy h2 { margin: 48px 0 15px; font-size: 1.8rem; }
.legal-copy p { line-height: 1.75; }
.legal-copy .table-wrap { margin-top: 25px; }
.legal-notice { padding: 18px 20px; border: 1px solid #f0c6c8; border-left: 3px solid var(--accent); border-radius: var(--radius-control); background: var(--accent-soft); font-size: .82rem; }
.pending-value { padding: 1px 6px; color: var(--accent-hover); border-radius: 4px; background: var(--accent-soft); font-weight: 650; }
.not-found { min-height: 70vh; padding: 110px 0; display: grid; place-items: center; text-align: center; }
.not-found .container { max-width: 780px; }
.not-found > .container > strong { color: var(--text); font-size: clamp(6rem, 15vw, 12rem); line-height: .8; letter-spacing: -.08em; }
.not-found h1 { margin-top: 40px; font-size: clamp(2.2rem, 4vw, 3.4rem); }
.not-found p { margin-top: 20px; color: var(--muted); }

.cta-band { padding: 52px 0; color: #fff; background: var(--dark); }
.cta-inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 60px; }
.cta-inner h2 { max-width: 800px; color: #fff; }
.cta-inner p:not(.kicker) { margin-top: 14px; color: rgba(255,255,255,.62); }
.cta-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.site-footer { padding: 52px 0 24px; color: rgba(255,255,255,.7); background: #0f1317; }
.footer-grid { display: grid; grid-template-columns: 1.35fr .75fr 1fr 1.2fr; gap: 55px; }
.footer-brand img { width: 158px; }
.footer-brand p { max-width: 310px; margin: 20px 0; font-size: .77rem; }
.footer-col { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.footer-col h2 { margin-bottom: 10px; color: #fff; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-col a, .footer-col p { padding-block: 2px; font-size: .82rem; }
.footer-col a:hover { color: #fff; }
.footer-contact p { margin: 0; }
.footer-bottom { margin-top: 38px; padding-top: 20px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.13); font-size: .76rem; }
.footer-bottom div { display: flex; flex-wrap: wrap; gap: 18px; }
.mobile-quote { display: none; }
.mobile-nav-language { display: none; }
.mobile-nav-quote { display: none; }

@media (max-width: 1100px) {
  :root { --section: 64px; }
  .header-inner { gap: 20px; }
  .primary-nav { gap: 16px; }
  .primary-nav > a, .nav-dropdown > button { font-size: .78rem; }
  .header-actions { gap: 12px; }
  .card-grid.four { grid-template-columns: repeat(2, 1fr); }
  .category-grid { grid-template-columns: repeat(3, 1fr); }
  .product-grid, .product-grid.four-col { grid-template-columns: repeat(3, 1fr); }
  .process-grid { grid-template-columns: repeat(3, 1fr); }
  .process-grid > li, .process-grid > article { border-bottom: 1px solid var(--line); }
  .media-grid.five { grid-template-columns: repeat(3, 1fr); }
  .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; }
  .footer-contact { grid-column: 2 / -1; }
}

@media (max-width: 900px) {
  .container, .narrow { width: min(calc(100% - 40px), 760px); }
  .header-inner { min-height: 72px; }
  .brand { width: 132px; }
  .menu-toggle { order: 3; width: 44px; height: 44px; margin-left: 2px; padding: 9px; display: grid; align-content: center; gap: 5px; border: 0; background: none; }
  .menu-toggle span { width: 25px; height: 2px; background: var(--text); }
  .menu-toggle b { display: none; }
  .primary-nav { position: fixed; inset: 72px 0 0; z-index: 110; padding: 28px 20px 110px; display: flex; flex-direction: column; align-items: stretch; gap: 0; overflow-y: auto; background: #fff; visibility: hidden; transform: translateX(100%); transition: .25s; }
  .primary-nav.is-open { visibility: visible; transform: none; }
  .primary-nav > a, .nav-dropdown > button { width: 100%; padding: 17px 0; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); text-align: left; font-size: 1rem; }
  .primary-nav > a::after, .nav-dropdown > button::after { display: none; }
  .dropdown-menu { position: static; width: auto; padding: 5px 0 10px 18px; display: none; border: 0; opacity: 1; visibility: visible; transform: none; }
  .nav-dropdown.open .dropdown-menu { display: grid; }
  .mobile-nav-language { margin-top: 24px; padding-top: 18px; display: flex; border-top: 1px solid var(--line); }
  .primary-nav > a.mobile-nav-quote { margin-top: 18px; padding: 13px 18px; display: flex; justify-content: center; color: #fff; border: 0; border-radius: var(--radius-control); background: var(--accent); }
  .header-actions { margin-left: auto; }
  .header-actions .btn { display: none; }
  .hero-grid, .page-hero-grid, .feature-split, .global-grid, .detail-grid, .form-split, .contact-grid, .post-feature { grid-template-columns: 1fr; gap: 45px; }
  .feature-split.reverse > :first-child { order: 0; }
  .hero-copy { padding-bottom: 10px; }
  .home-hero .hero-product { max-width: 650px; }
  .facts-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 24px; }
  .section-head.split, .text-split, .two-col { grid-template-columns: 1fr; gap: 25px; }
  .category-grid { grid-template-columns: repeat(2, 1fr); }
  .location-grid.light-cards { grid-template-columns: 1fr; }
  .timeline { grid-template-columns: repeat(2, 1fr); gap: 30px 0; }
  .timeline::before { display: none; }
  .timeline li { padding-top: 35px; }
  .timeline li::before { top: 0; }

  .product-grid.three-col { grid-template-columns: repeat(2, 1fr); }
  .detail-copy { padding-top: 0; }
  .process-timeline > li { flex-basis: calc((100% - 18px) / 2); }

  .location-showcase, .catalogue-grid { grid-template-columns: 1fr 1fr; }
  .mini-category-row { grid-template-columns: repeat(3, 1fr); }
  .faq-layout, .legal-layout { grid-template-columns: 1fr; gap: 35px; }
  .faq-nav, .legal-toc { position: static; display: flex; overflow-x: auto; gap: 10px; }
  .faq-nav a, .legal-toc a { flex: 0 0 auto; padding: 8px 11px; border: 1px solid var(--line); border-radius: var(--radius-pill); }
  .quote-layout { grid-template-columns: 1fr; gap: 25px; }
  .quote-aside { position: static; }
  .case-grid, .post-grid { grid-template-columns: repeat(2, 1fr); }
  .cta-inner { grid-template-columns: 1fr; gap: 28px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-contact { grid-column: auto; }
}

@media (max-width: 620px) {
  :root { --section: 46px; }
  .container, .narrow { width: calc(100% - 32px); }
  body { font-size: 15px; }
  h1 { font-size: clamp(2.25rem, 10.5vw, 3rem); }
  h2 { font-size: clamp(1.72rem, 8vw, 2.15rem); }
  .header-actions .language-switch { display: none; }
  .home-hero { padding-top: 22px; }
  .hero-grid { gap: 25px; }
  .hero-copy { padding-top: 15px; }
  .button-row { margin-top: 22px; align-items: stretch; flex-direction: column; }
  .button-row .btn { width: 100%; }
  .facts-grid { gap: 20px; }
  .stat strong { font-size: 1.8rem; }
  .choice-grid, .location-showcase, .catalogue-grid, .case-grid, .post-grid { grid-template-columns: 1fr; }
  .product-grid, .product-grid.three-col, .product-grid.four-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .card-grid.two, .card-grid.three, .card-grid.four { margin-inline: -16px; padding-inline: 16px; display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; }
  .card-grid.two > *, .card-grid.three > *, .card-grid.four > * { flex: 0 0 min(76vw, 280px); scroll-snap-align: start; }
  .category-grid { margin-inline: -16px; padding-inline: 16px; display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; }
  .category-card { flex: 0 0 min(78vw, 300px); scroll-snap-align: start; }
  .icon-card { padding: 20px; }
  .card-grid.four .icon-card h3 { font-size: 1rem; }
  .section-head { margin-bottom: 28px; }
  .section-link.multi { align-items: flex-start; flex-direction: column; gap: 12px; }
  .location-card { grid-template-columns: 44px 1fr; padding: 20px; }
  .choice-grid article { padding: 26px 22px; }

  .page-title, .page-hero { padding: 28px 0 32px; }
  .timeline { grid-template-columns: 1fr; }
  .media-grid.five { grid-template-columns: 1fr; }
  .media-grid.five { gap: 15px; }
  .process-grid { margin-inline: -16px; padding-inline: 16px; display: flex; gap: 16px; overflow-x: auto; border: 0; border-radius: 0; scroll-snap-type: x proximity; }
  .process-grid > li, .process-grid > article { min-height: 175px; flex: 0 0 min(76vw, 280px); border: 1px solid var(--line); border-radius: var(--radius-card); scroll-snap-align: start; }
  .mini-category-row { display: flex; overflow-x: auto; }
  .mini-category-row a { flex: 0 0 145px; }
  .form-card { padding: 24px 18px; }
  .quick-links { grid-template-columns: 1fr !important; }
  .form-row { grid-template-columns: 1fr; }
  .choice-cards { grid-template-columns: 1fr 1fr; }
  .choice-cards label > span { min-height: 88px; }
  .step-indicator li { font-size: 0; }
  .step-indicator li span { font-size: .75rem; }

  .process-meta > div { grid-template-columns: 1fr; gap: 2px; }
  .cta-inline { align-items: stretch; flex-direction: column; }
  .cta-inline .button-row { width: 100%; }

  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand, .footer-contact { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .product-sticky { top: 72px; }
  .product-sticky .container > span { max-width: 55%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .hero-product { max-height: 260px; aspect-ratio: 16 / 10; }
  .hero-product img { object-position: center 38%; }
  .product-info { padding-top: 10px; }
  .product-info h3 { font-size: .92rem; }
  .product-info p { font-size: .72rem; }

  .filter-bar { align-items: flex-start; flex-wrap: wrap; overflow: visible; }
  .filter-bar select { width: 100%; margin-left: 0; }
  .table-wrap.responsive-table { overflow: visible; border: 0; background: transparent; }
  .responsive-table table { min-width: 0; }
  .responsive-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .responsive-table table { display: block; }
  .responsive-table tbody { margin-inline: -16px; padding-inline: 16px; display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x proximity; }
  .responsive-table tr { padding: 8px 16px; display: grid; flex: 0 0 min(82vw, 320px); border: 1px solid var(--line); border-radius: var(--radius-card); background: #fff; scroll-snap-align: start; }
  .responsive-table td { padding: 10px 0; display: grid; grid-template-columns: minmax(95px, .75fr) 1.25fr; gap: 12px; border-bottom: 1px solid var(--line); font-size: .8rem; }
  .responsive-table td::before { content: attr(data-label); color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; }
  .responsive-table tr td:last-child { border-bottom: 0; }
  .home-hero .hero-product { display: none; }
  .home-hero .facts-grid { margin-inline: -16px; padding-inline: 16px; display: flex; gap: 24px; overflow-x: auto; scroll-padding-inline: 16px; scroll-snap-type: x proximity; }
  .home-hero .stat { flex: 0 0 152px; scroll-snap-align: start; }
  .location-grid { margin-inline: -16px; padding-inline: 16px; display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; }
  .location-grid > article { flex: 0 0 min(78vw, 300px); scroll-snap-align: start; }
  .feature-split .feature-product { max-height: 240px; aspect-ratio: 16 / 10; }
  .feature-split .feature-product img { object-position: center 36%; }
  .feature-split .step-flow { grid-template-columns: 1fr 1fr; gap: 8px; }
  .feature-split .step-flow li { padding: 12px 13px; align-items: flex-start; flex-direction: column; gap: 6px; }
  .feature-split .step-flow li > span { width: auto; }
  .feature-split .step-flow h3 { font-size: .88rem; }
  .feature-split .button-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .feature-split .button-row .btn { width: auto; }
  .feature-split .button-row .text-link { display: grid; place-items: center; text-align: center; }
  .catalogue-grid, .case-grid, .location-showcase, .media-grid.five, .location-stack { margin-inline: -16px; padding-inline: 16px; display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; }
  .catalogue-grid > article, .case-grid > article, .location-showcase > article, .media-grid.five > article, .location-stack > article { flex: 0 0 min(82vw, 310px); scroll-snap-align: start; }

  .process-timeline { gap: 14px; }
  .process-timeline > li { flex-basis: min(80vw, 320px); }

  .process-body { padding: 18px 18px 20px; }
  .quote-aside { display: none; }
  .form-split, .contact-grid { gap: 24px; }
  .form-split .form-card { grid-template-columns: 1fr 1fr; gap: 14px; }
  .form-split .form-card > .validation-summary, .form-split .form-card > .alert, .form-split .form-card > .check-control, .form-split .form-card > span, .form-split .form-card > .hp, .form-split .form-card > button { grid-column: 1 / -1; }
  .contact-grid .form-card { padding: 20px 18px; gap: 14px; }
  .contact-grid .form-card textarea { min-height: 105px; }
  .quote-section { padding-block: 36px; }
  .quote-form { padding: 16px; }
  .quote-form fieldset { gap: 10px; }
  .quote-form legend { margin-bottom: 10px; font-size: 1.25rem; }
  .quote-form legend span { width: 32px; height: 32px; }
  .quote-form .choice-cards label > span { min-height: 76px; padding: 10px; }
  .quote-form .file-drop { min-height: 104px; padding: 14px 12px; }
  .quote-form .file-drop strong { font-size: .84rem; }
  .quote-form .file-drop small { font-size: .68rem; }
  .quote-form textarea { min-height: 70px; }
  .quote-form .form-actions { padding-top: 8px; }
  .quote-form fieldset[data-step="1"] { grid-template-columns: 1fr 1fr; }
  .quote-form fieldset[data-step="1"] > legend, .quote-form fieldset[data-step="1"] > label:first-of-type, .quote-form fieldset[data-step="1"] > label:last-of-type, .quote-form fieldset[data-step="1"] > .choice-cards, .quote-form fieldset[data-step="1"] > .form-actions { grid-column: 1 / -1; }
  #iletisim-formu, #contact-form { padding-block: 48px; }

  /* The sticky phone CTA the kit's QA list asks for. The anchor was already in _Layout on every page but
     `.mobile-quote { display: none }` hid it at every width, so it shipped as markup nobody could see.
     It is switched on for phones only; the tablet and desktop headers keep their own "Teklif Al" button.
     Two exceptions: the quote page, where it would link to itself, and the product page, which already
     carries a sticky bar naming the product being quoted - two stacked bars would fight for the thumb. */
  .mobile-quote { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 95; padding: 14px 18px; display: flex; align-items: center; justify-content: center; color: #fff; border-radius: var(--radius-pill); background: var(--accent); box-shadow: 0 10px 26px rgba(20,24,29,.22); font-size: .92rem; font-weight: 700; text-align: center; visibility: hidden; transform: translateY(calc(100% + 16px)); transition: transform .22s ease, visibility .22s; }
  /* Revealed by site.js once the visitor is past the first screen, so it never lands on top of the hero's
     own "Teklif Al" button. visibility (not display) keeps the reveal animatable, and while it is parked
     it also takes the anchor out of the tab order - a focused control sitting off-screen is worse than no
     control at all. With JavaScript off it stays parked, which is exactly how the page behaved before. */
  body.past-hero .mobile-quote { visibility: visible; transform: none; }
  .mobile-quote:hover, .mobile-quote:focus-visible { background: var(--accent-hover); }
  body.quote-page .mobile-quote, body.product-page .mobile-quote { display: none; }
  /* Reserve the bar's own height at the end of the page so it never sits on top of the footer's last line. */
  body:not(.quote-page):not(.product-page) { padding-bottom: 78px; }
  body.nav-open .mobile-quote { display: none; }
}

@media (max-width: 1100px) {
  .solution-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .slide-card { flex-basis: calc((100% - 40px) / 3); }
  .production-layout { grid-template-columns: 1fr; gap: 42px; }
  .production-intro .production-facts { max-width: 720px; }
}

@media (max-width: 900px) {
  .section-head.with-actions { align-items: flex-start; flex-direction: column; gap: 20px; }
  .solution-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .slide-card { flex-basis: calc((100% - 20px) / 2); }
}

@media (max-width: 620px) {
  .facts-grid { gap: 22px 18px; }
  .stat span { font-size: .8rem; }
  .section-head.with-actions { margin-bottom: 18px; }
  .solution-grid { margin-inline: -16px; padding-inline: 16px; display: flex; gap: 14px; overflow-x: auto; scroll-padding-inline: 16px; scroll-snap-type: x proximity; }
  .solution-card { padding: 20px 18px 18px; flex: 0 0 min(74vw, 262px); scroll-snap-align: start; }
  .solution-card h3 { margin-top: 16px; font-size: 1rem; }
  .slider-nav { display: none; }
  .chip-nav { margin-inline: -16px; margin-bottom: 20px; padding-inline: 16px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .chip-nav::-webkit-scrollbar { width: 0; height: 0; }
  .chip-nav > * { flex: 0 0 auto; }
  .slider { margin-inline: -16px; padding-inline: 16px; }
  .slider-track { gap: 14px; }
  .slide-card { flex-basis: min(56vw, 220px); }
  .step-flow { gap: 8px; }
  .production-mosaic { grid-template-columns: 1fr 1fr; gap: 10px; }
  .production-mosaic figure:first-child, .production-mosaic figure:last-of-type { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
  .production-facts > div { grid-template-columns: 1fr; gap: 5px; }
}

@media (max-width: 900px) {
  .route-split { grid-template-columns: 1fr; padding-top: 26px; }
  .route-split::after { left: 50%; right: auto; width: 1px; border: 0; background: rgba(255,255,255,.3); height: 10px; border-radius: 0; }

}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .slider-track { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
