/* SM GRUE — architectural visual refresh.
   Presentation only: existing sections, grids, images and category data are retained.
   Local Manrope font is distributed under the SIL Open Font License in fonts/. */
@import url('./vendor/daisyui-button.css');
@font-face {
  font-family: 'Poppins';
  src: url('./fonts/poppins-semibold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Poppins';
  src: url('./fonts/poppins-bold.ttf') format('truetype');
  font-weight: 700 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Manrope';
  src: url('./fonts/manrope-variable.ttf') format('truetype');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

:root {
  --brand-green: #89C443;
  --brand-blue: #1E50A2;
  --primary: #1e50a2;
  --primary-dark: #163d7a;
  --primary-light: #3469bc;
  --secondary: #1E50A2;
  --secondary-light: #c5d9f5;
  --accent: #477ac6;
  --surface: #18283f;
  --surface-dark: #101b2c;
  --offwhite: #f3f5f8;
  --gray-50: #f7f8fa;
  --gray-100: #eef1f5;
  --gray-200: #dce2ea;
  --gray-300: #c8d1df;
  --gray-400: #a5afbf;
  --gray-500: #667386;
  --gray-600: #566477;
  --gray-700: #3d4b5f;
  --gray-800: #293547;
  --gray-900: #19273b;
  --font-head: 'Poppins', 'Manrope', Arial, sans-serif;
  --font-body: 'Manrope', Arial, sans-serif;
  --radius: 3px;
  --radius-md: 4px;
  --radius-lg: 5px;
  --shadow-sm: 0 2px 8px rgba(21,36,59,.025);
  --shadow-md: 0 8px 28px rgba(21,36,59,.055);
  --shadow-lg: 0 16px 42px rgba(21,36,59,.08);
  --shadow-xl: 0 24px 56px rgba(21,36,59,.11);
  --ease: cubic-bezier(.22,.7,.2,1);
}

body { font-weight: 400; }
::selection { background: #1e50a2; color: #fff; }
h1, h2, h3, h4, .sec-title, .machine-card-title, .fleet-cat-title {
  font-family: var(--font-head); letter-spacing: -.035em;
}
.sec-title, .page-hero h1 { font-weight: 700; }
.sec-sub, .svc-card-body p, .svc-cat-card-body > p,
.machine-card-desc, .fleet-card-body > p { color: #586779; }
.hero-title {
  font-family: var(--font-head); font-weight: 500; letter-spacing: -.045em;
  text-shadow: 0 2px 24px rgba(0,0,0,.15);
}
.hero-title-bold { font-weight: 800; }
.hero-subtitle { color: #d3e4ff; text-shadow: none; letter-spacing: .32em; }
.hero-desc { color: rgba(255,255,255,.87); }
.hero-overlay { background: linear-gradient(110deg,rgba(12,21,36,.61),rgba(12,21,36,.18) 70%,rgba(12,21,36,.25)); }
.hero-overlay::after { content: ''; position: absolute; inset: 22px; border: 1px solid rgba(255,255,255,.15); pointer-events: none; }
.hero-scroll a { border-width: 1px; border-radius: 3px; background: rgba(255,255,255,.06); }

/* A quiet, precise masthead, with the existing navigation positions. */
.header { background: rgba(255,255,255,.97); box-shadow: 0 1px 0 #e5e9e1; }
.header.scrolled { box-shadow: 0 6px 30px rgba(21,36,59,.065); }
.nav-link { font-size: .82rem; font-weight: 600; border-radius: 0; color: #2b3648; }
.nav-link:hover, .nav-link.active { color: #1e50a2; background: transparent; }
.nav-link.active::after { width: 22px; height: 2px; background: #1e50a2; border-radius: 0; }
.phone-link { color: #24446f; font-size: .82rem; font-weight: 700; }
.dd { border-radius: 4px; box-shadow: var(--shadow-lg); border-color: #dce2ea; }
.dd li a:hover { background: #eff4fc; color: #1e50a2; }
.mobnav-panel { background: #fafbfd; }
.mobnav-close, .mobnav-links a { border-radius: 3px; }
.mobnav-links a:hover, .mobnav-links a.active-link { color: #1e50a2; }

/* Solid, rectangular actions. Existing labels, icons and links are unchanged. */
.btn, .btn-cat-cta, .tower-model-download {
  border-radius: 3px; font-family: var(--font-head); font-weight: 700;
  letter-spacing: .035em; box-shadow: none;
}
.btn-primary, .btn-cat-cta, .machine-pdf-btn {
  background: #1e50a2; border-color: #1e50a2; color: #fff;
}
.btn-primary:hover, .btn-cat-cta:hover, .machine-pdf-btn:hover {
  background: #163d7a; border-color: #163d7a; color: #fff;
}
.btn-green, .btn-header, .header.transparent .btn-header,
.header.transparent.scrolled .btn-header {
  background: #1e50a2; border-color: #1e50a2; color: #19273b;
}
.btn-green:hover, .btn-header:hover, .header.transparent .btn-header:hover,
.header.transparent.scrolled .btn-header:hover {
  background: #2860b6; border-color: #2860b6; color: #19273b;
}
.btn-white, .btn-hero-about { background: #fff; border-color: #fff; color: #1e50a2; }
.btn-hero-about:hover { background: #1e50a2; border-color: #1e50a2; color: #19273b; }
.btn-outline { color: #1e50a2; border-color: #b8c8e2; }
.btn-outline:hover { color: #fff; background: #1e50a2; border-color: #1e50a2; }
.tower-model-download { color: #1e50a2; background: #edf3fc; border: 1px solid #cbdaf0; }
.tower-model-download:hover { color: #fff; background: #1e50a2; border-color: #1e50a2; }
.btn:focus-visible, .btn-cat-cta:focus-visible, .tower-model-download:focus-visible,
.cat-nav-link:focus-visible { outline: 2px solid #1e50a2; outline-offset: 4px; }

/* Editorial labels and disciplined card surfaces. */
.section-tag {
  border-radius: 0; border-left: 2px solid #1e50a2; background: #f0f4fa;
  color: #31598f; letter-spacing: .17em; font-weight: 700;
}
.section-tag.light, .page-hero .section-tag { color: #cbdfff; background: rgba(30,80,162,.1); }
.svc-card, .svc-cat-card, .fleet-cat-card, .machine-card, .fleet-card,
.tower-brand, .contact-form-wrap, .val-card {
  border-radius: 5px; border-color: #dce2ea; box-shadow: none;
}
.svc-card-img, .svc-cat-card-img, .fleet-cat-img { background: #fff; }
.svc-card-badge, .machine-card-tag, .fleet-card-badge {
  border-radius: 2px; background: #1e50a2; color: #19273b; font-weight: 800; letter-spacing: .07em;
}
.svc-card-icon, .svc-cat-card-icon {
  border: 1px solid #dce5f1; background: #eff4fc; color: #315f9e; border-radius: 3px;
}
.svc-card-body h3, .svc-cat-card-body h3, .fleet-card-body h3 { font-weight: 750; }
.svc-card-link, .fleet-cat-link, .machine-card-brand { color: #1e50a2; }
.svc-cat-card-tags span { border-radius: 2px; background: #eff4fc; color: #31588d; }
.fleet-cat-divider { border-radius: 0; height: 2px; background: #1e50a2; }
.fleet-cat-title { font-weight: 750; }
.fleet-cat-range { color: #586779; font-variant-numeric: tabular-nums; }
.machine-card-brand { font-weight: 600; }
.machine-card-specs { border-radius: 3px; border-color: #dce2ea; }
.machine-card-specs li i { color: #3267ae; }
.machine-card-specs li:hover { background: #eff4fc; }
.machine-card-specs li:nth-child(even) { background: #f5f7fa; }
.machine-card-specs .ms-value { font-variant-numeric: tabular-nums; }
.cat-nav { border-radius: 4px; box-shadow: none; border-color: #dce2ea; }
.cat-nav-link { border-radius: 3px; color: #385274; }
.cat-nav-link.active { background: #1e50a2; color: #fff; border-color: #1e50a2; }
.tower-brand-summary:hover { background: #f4f7fc; }
.tower-brand[open] { border-color: #a8bfdf; }
.tower-brand-info strong, .tower-model-name { font-family: var(--font-head); letter-spacing: -.025em; }
.tower-brand-toggle { color: #31598e; }
.tower-brand-products, .tower-model-row { border-color: #dce2ea; }
.tower-series-title { background: #f2f5fb; color: #1e50a2; letter-spacing: .035em; }

/* Photography remains in its existing frame; only its surrounding finish changes. */
.page-hero-bg img { opacity: .65; }
.page-hero-overlay { background: linear-gradient(110deg,rgba(16,27,44,.94),rgba(16,27,44,.68) 65%,rgba(16,27,44,.5)); }
.page-hero p { color: #d7e0ed; }
.breadcrumbs, .breadcrumbs a { color: #bdcce1; }
.breadcrumbs a:hover { color: #d1e4ff; }
.svc-page-img-main, .svc-page-img-row img, .about-img-main,
.about-img-accent, .gallery-item, .proj-card { border-radius: 4px; box-shadow: none; }
.stats-overlay { background: linear-gradient(110deg,rgba(20,36,60,.94),rgba(16,27,44,.9)); }
.stat-icon, .stat-sfx { color: #a6c9ff; }
.stat-num { letter-spacing: -.055em; font-variant-numeric: tabular-nums; }
.stat-label { color: #d2dfef; }
.logo-marquee { border-radius: 3px; border-color: #e3e8f0; }
.values-section { background: #18283f; }
.val-card { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.025); }
.val-card p { color: #ccd8e9; }
.cta-banner-ov { background: linear-gradient(110deg,rgba(18,32,54,.94),rgba(18,32,54,.8)); }
.cta-banner p { color: #d6e0ef; }
.footer { background: #101b2c; color: #bbcadd; }
.footer-about p, .footer-links a, .footer-contact a { color: #bbcadd; }
.footer-bottom p { color: #9eafc8; }
.footer-title { letter-spacing: .035em; font-weight: 650; }
.footer-title::after { height: 2px; border-radius: 0; background: #1e50a2; }
.footer-social a { border-radius: 3px; background: #1d2b43; color: #d3deed; }
.footer-social a:hover { background: #1e50a2; color: #19273b; }
.btt { background: #1e50a2; border-radius: 4px; }
.btt:hover { background: #163d7a; }

/* Forms and data use the same calm surfaces and precise border treatment. */
.contact-form-wrap { background: #f7f9fc; }
.form-group label { font-weight: 650; color: #334660; }
.form-group input, .form-group select, .form-group textarea {
  border-radius: 3px; background-color: #fff; color: #243751; border-color: #cbd6e7;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  border-color: #1e50a2; box-shadow: 0 0 0 3px rgba(30,80,162,.13); outline: none;
}
.form-group input::placeholder, .form-group textarea::placeholder { color: #71809a; }
.filter-btn.active, .fltr-btn.active { background: #1e50a2; color: #fff; border-color: #1e50a2; }
.filter-btn, .fltr-btn { border-radius: 3px; }
.specs-table th { background: #1e50a2; color: #fff; }
.specs-table td { border-color: #dce2ea; }

@media (hover:hover) and (pointer:fine) {
  .svc-card:hover, .svc-cat-card:hover, .fleet-cat-card:hover, .machine-card:hover,
  .svc-card[data-aos].aos-done:hover, .fleet-cat-card[data-aos].aos-done:hover {
    border-color: #aec5e8; box-shadow: 0 16px 38px rgba(25,47,82,.085);
  }
  .btn:hover, .tower-model-download:hover { box-shadow: 0 8px 20px rgba(25,47,82,.13); }
}
@media (max-width:1024px) {
  .hero-title { letter-spacing: -.045em; }
}
@media (max-width:640px) {
  .hero-overlay::after { inset: 12px; }
  .hero-subtitle { letter-spacing: .2em; }
  .hero-title { letter-spacing: -.025em; }
}
@media (prefers-reduced-motion:reduce) {
  .btn, .btn-cat-cta, .tower-model-download { transition: none; }
  .hero-fade-line { animation: none; opacity: 1; transform: none; }
}

/* Component polish from the Bedimcode references and Taste's existing-site workflow. */
body { font-kerning: normal; text-rendering: optimizeLegibility; }
h1, h2, h3, h4 { font-weight: 600; }
.hero-title { font-weight: 600; letter-spacing: -.035em; text-shadow: none; }
.hero-title-bold { font-weight: 700; }
.hero-subtitle { text-shadow: none; }
.hero-overlay::after { display: none; }
.header { background: #fff; }
.header.scrolled { box-shadow: 0 4px 18px rgba(21,36,59,.045); }
.section-tag {
  border-left-color: transparent; background: transparent;
  text-transform: none; letter-spacing: .025em; font-weight: 600;
}
.section-tag.light, .page-hero .section-tag { background: transparent; }
.svc-card, .svc-cat-card, .fleet-cat-card, .machine-card {
  background: #f5f7fa; border-color: transparent;
}
.svc-card-body p, .svc-cat-card-body > p, .machine-card-desc {
  font-size: 1rem; line-height: 1.65; color: #38485e;
}
.fleet-cat-range, .machine-card-brand { font-size: .875rem; color: #4d627e; }
.svc-card-body h3, .svc-cat-card-body h3, .fleet-cat-title, .machine-card-title {
  font-weight: 600; letter-spacing: -.025em;
}
.btn, .btn-cat-cta, .tower-model-download {
  font-family: var(--font-head); font-weight: 600; line-height: 1.3;
  font-size: .875rem; letter-spacing: 0; border-radius: 3px; border-width: 1px;
  padding: 14px 25px; min-height: 48px; text-align: center;
}
.btn-lg { min-height: 56px; padding: 16px 32px; font-size: .9375rem; }
.btn-sm, .tower-model-download { padding: 12px 18px; }
.btn-header { font-size: .8rem; padding: 14px 23px; }
.btn-primary, .btn-cat-cta, .machine-pdf-btn { --btn-color: #1e50a2; }
.btn-header, .btn-green { --btn-color: #1e50a2; }
.btn-white, .btn-hero-about { --btn-color: #1e50a2; }
.btn-whatsapp { --btn-color: #25d366; }
.btn::after, .tower-model-download::after,
.btn:is(:hover,:focus-visible)::after, .tower-model-download:is(:hover,:focus-visible)::after {
  display: none; animation: none; background: none;
}
.btn:focus-visible, .btn-cat-cta:focus-visible, .tower-model-download:focus-visible {
  outline: 2px solid #1e50a2; outline-offset: 4px;
}
.btn:active:not(:disabled,[aria-disabled="true"]),
.btn-cat-cta:active:not(:disabled,[aria-disabled="true"]),
.tower-model-download:active:not(:disabled,[aria-disabled="true"]) {
  transform: translateY(1px) scale(.98); box-shadow: none;
}
.btn i, .btn-cat-cta i, .tower-model-download i { transition: transform .24s cubic-bezier(.22,1,.36,1); }
.nav-link { font-family: var(--font-body); font-size: .84rem; }
.nav-link::after, .nav-link.active::after {
  content: ''; position: absolute; bottom: 3px; left: 16px; right: 16px;
  height: 2px; width: auto; border-radius: 0; background: #1e50a2;
  transform: scaleX(0); transform-origin: left; transition: transform .24s cubic-bezier(.22,1,.36,1);
}
.nav-link.active::after, .nav-link:focus-visible::after { transform: scaleX(1); }
.cat-nav-link { min-height: 44px; align-items: center; }
.mobnav-links a { min-height: 52px; }
.tower-brand-summary { transition: background-color .18s ease; }
.tower-brand[open] .tower-brand-summary { background: #edf3fc; }
.tower-brand-toggle i { transition: transform .24s cubic-bezier(.22,1,.36,1); }
.form-group :is(input,select,textarea) { transition: border-color .18s ease, box-shadow .18s ease; }
.form-group :is(input,select,textarea):user-invalid { border-color: #aa3d32; }
.form-group :is(input,textarea):user-valid:not(:placeholder-shown) { border-color: #618b3f; }
@media (hover:hover) and (pointer:fine) {
  .nav-link:hover::after { transform: scaleX(1); }
  .btn:hover, .btn-cat-cta:hover, .tower-model-download:hover {
    transform: translateY(-2px); box-shadow: 0 8px 18px rgba(25,47,82,.1);
  }
  .btn:hover > i, .btn-cat-cta:hover > i, .tower-model-download:hover > i { transform: translateX(3px); }
  .svc-card:hover .svc-card-icon i { transform: translateY(-2px); }
}
@media (max-width:640px) {
  .hero-title { letter-spacing: -.025em; }
  .form-group :is(input,select,textarea) { font-size: 1rem; }
  .btn, .btn-cat-cta, .tower-model-download { white-space: normal; }
}
@media (prefers-reduced-motion:reduce) {
  .nav-link::after, .btn i, .btn-cat-cta i, .tower-model-download i { transition: none; }
  .btn:active, .btn-cat-cta:active, .tower-model-download:active { transform: none !important; translate: none; }
}

/* Browser-review corrections: reading contrast and balanced text, not new layout. */
.sec-title { text-wrap: balance; }
.hero-subtitle { text-transform: none; font-family: var(--font-body); font-size: .9rem; letter-spacing: .015em; }
.hero-desc, .hero-title, .hero-subtitle { text-shadow: none; }
.stats-overlay { background: rgba(16,27,44,.93); }
.svc-detail-card { box-shadow: none; border-color: transparent; background: #f5f7fa; }
.svc-card-icon, .svc-cat-card-icon { background: transparent; border-color: transparent; }
.logo-marquee { border-color: transparent; }
.seo-foot-note, .footer-bottom { border-color: transparent !important; }
.seo-foot-note p { color: #c6d4e8 !important; max-width: 75ch; margin-left: auto; margin-right: auto; }
.svc-card-badge, .machine-card-tag, .fleet-card-badge { font-size: .8125rem; letter-spacing: .035em; }
.svc-card-link, .fleet-cat-link, .phone-link, .footer-links a, .footer-contact li,
.footer-about p, .footer-bottom p, .breadcrumbs { font-size: .875rem; }
.section-tag, .stat-label { font-size: .875rem; }
.svc-cat-card-tags span, .proj-cat { font-size: .8125rem; }
.sec-sub, .svc-detail-card p, .svc-page-text p, .about-text p,
.val-card p, .cta-banner p { font-size: 1rem; }
.sec-sub, .svc-detail-card p, .about-text p { color: #33435a; }
.sec-sub.light { color: #d1def1; }
/* Essential hero copy is readable immediately, even while its entrance moves. */
.hero-fade-line { opacity: 1; }
.has-dd:focus-within .dd { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }

/* Owner's rounded action-button reference, in the original SM Grue blue. */
:is(.btn, .btn-cat-cta, .tower-model-download) {
  --btn-color: #1e50a2;
  border-radius: 17px;
  gap: 14px;
}
.btn-lg { border-radius: 20px; }
.btn-header { border-radius: 16px; padding-inline: 20px; }
.btn-primary, .btn-green, .btn-cat-cta, .machine-pdf-btn,
.btn-header, .header.transparent .btn-header, .header.transparent.scrolled .btn-header {
  background: #1e50a2; border-color: #1e50a2; color: #fff;
}
.btn-primary:hover, .btn-green:hover, .btn-cat-cta:hover, .machine-pdf-btn:hover,
.btn-header:hover, .header.transparent .btn-header:hover, .header.transparent.scrolled .btn-header:hover {
  background: #163d7a; border-color: #163d7a; color: #fff;
}
.btn-outline, .tower-model-download {
  background: #edf3fc; border-color: #b8ceee; color: #1e50a2;
}
.btn-outline:hover, .tower-model-download:hover {
  background: #1e50a2; border-color: #1e50a2; color: #fff;
}
.btn-white, .btn-hero-about { background: #fff; border-color: #fff; color: #1e50a2; }
.btn-white:hover { background: #edf3fc; border-color: #edf3fc; color: #163d7a; }
.btn-hero-about:hover { background: #1e50a2; border-color: #1e50a2; color: #fff; }
.cta-banner .btn-outline {
  background: #1b345a; border-color: #557bb2; color: #e1ecff;
}
.cta-banner .btn-outline:hover { background: #1e50a2; border-color: #1e50a2; color: #fff; }
.svc-card-badge, .machine-card-tag, .fleet-card-badge { background: #1e50a2; color: #fff; }
.footer-social a:hover { background: #1e50a2; color: #fff; }
.fleet-cat-card:focus-visible, .svc-card-link:focus-visible { outline-color: #1e50a2; }
.hero-subtitle { color: #d3e4ff; }

/* A stroke arrow like the reference; CSS keeps labels, icons and links intact. */
:is(.btn:not(.btn-whatsapp), .btn-cat-cta, .tower-model-download)::after,
:is(.btn:not(.btn-whatsapp), .btn-cat-cta, .tower-model-download):is(:hover,:focus-visible)::after {
  content: '';
  display: block;
  position: static;
  inset: auto;
  flex: 0 0 21px;
  width: 21px;
  height: 21px;
  margin: 0;
  pointer-events: none;
  animation: none;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15M13 5l7 7-7 7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: none;
  transition: transform .2s cubic-bezier(.22,1,.36,1);
}
.btn.btn-header::after { flex-basis: 18px; width: 18px; height: 18px; }
.machine-card-actions .btn { white-space: normal; gap: 10px; }
.btn-whatsapp { --btn-color: #25d366; background: #25d366; border-color: #25d366; color: #fff; }
.btn-whatsapp:hover { background: #20ba5a; border-color: #20ba5a; color: #fff; }
@media (hover:hover) and (pointer:fine) {
  :is(.btn:not(.btn-whatsapp), .btn-cat-cta, .tower-model-download):hover::after { transform: translateX(4px); }
}
@media (prefers-reduced-motion:reduce) {
  :is(.btn:not(.btn-whatsapp), .btn-cat-cta, .tower-model-download)::after,
  :is(.btn:not(.btn-whatsapp), .btn-cat-cta, .tower-model-download):is(:hover,:focus-visible)::after {
    transition: none; transform: none;
  }
}

/* Purpose-drawn technical symbols: one stroke system, no stock pictogram tiles. */
.technical-icon {
  width: 32px; height: 32px; display: block; flex: none;
  fill: none; stroke: currentColor; stroke-width: 1.65;
  stroke-linecap: round; stroke-linejoin: round;
}
.about-feat { background: transparent; border-color: transparent; padding: 18px 0; gap: 16px; }
.about-feat-icon { width: 48px; height: 48px; background: transparent; color: #1e50a2; border-radius: 0; }
.about-feat-icon .technical-icon { width: 36px; height: 36px; }
.about-feat h4 { font-size: 1rem; line-height: 1.4; margin-bottom: 5px; }
.about-feat p { font-size: .9375rem; line-height: 1.6; color: #536278; }
.svc-card-icon .technical-icon { width: 30px; height: 30px; }
.val-icon:has(.technical-icon) { background: transparent; color: #c3d8f7; border-radius: 0; }
.val-icon .technical-icon { width: 36px; height: 36px; }
@media (max-width:1100px) {
  .header .nav, .header-right .phone-link, .header-right .btn-header { display: none; }
  .header .hamburger { display: flex; }
}

/* Four original category links, progressively enhanced into a native-scroll carousel. */
.svc-grid[data-category-slider] > .svc-card { opacity: 1; transform: none; }
.category-slider { position: relative; }
.category-slider .svc-grid {
  position: relative; display: grid; grid-template-columns: none; grid-auto-flow: column;
  grid-auto-columns: calc((100% - 48px) / 3.15); gap: 24px;
  overflow-x: auto; overscroll-behavior-x: contain;
  padding: 8px 0 18px; scroll-snap-type: x mandatory; scroll-behavior: auto;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.category-slider .svc-grid::-webkit-scrollbar { display: none; }
.category-slider .svc-card { scroll-snap-align: start; display: flex; flex-direction: column; min-width: 0; }
.category-slider .svc-card-body { display: flex; flex-direction: column; flex: 1; }
.category-slider .svc-card-link { margin-top: auto; }
.category-slider .svc-card-img { flex: none; }
.category-slider .svc-card-img img { pointer-events: none; user-select: none; }
.category-slider .svc-card:is(:hover,:focus-within) .svc-card-img img { animation: none; }
.category-slider .svc-grid:is(.is-tweening,.is-dragging) { scroll-snap-type: none; }
.category-slider .svc-grid.is-dragging, .category-slider .svc-grid.is-dragging * { cursor: grabbing; user-select: none; }
.category-slider .svc-grid:focus-visible { outline: 2px solid #1e50a2; outline-offset: 6px; border-radius: 4px; }
.category-slider-controls { display: flex; align-items: center; gap: 22px; padding-top: 12px; }
.category-slider-controls[hidden] { display: none; }
.category-slider-arrows { display: flex; gap: 10px; }
.category-slider-arrows button {
  display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid #c9d6ea;
  border-radius: 15px; color: #1e50a2; background: #fff; transition: background .18s ease, color .18s ease;
}
.category-slider-arrows svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.category-slider-arrows button:not([aria-disabled="true"]):hover { color: #fff; background: #1e50a2; border-color: #1e50a2; }
.category-slider-arrows button[aria-disabled="true"] { color: #a5b0c1; background: #f4f6f9; cursor: default; }
.category-slider-controls button:focus-visible { outline: 2px solid #1e50a2; outline-offset: 3px; }
.category-slider-dots { display: flex; align-items: center; gap: 2px; margin-inline: auto; }
.category-slider-dots button { display: grid; place-items: center; width: 44px; height: 44px; border: 0; background: transparent; }
.category-slider-dots button::before { content: ''; width: 18px; height: 4px; border-radius: 2px; background: #ccd7e7; transition: background .18s ease; }
.category-slider-dots button[aria-current="true"]::before { background: #1e50a2; }
.category-slider-status { min-width: 90px; text-align: right; font-size: .875rem; color: #51647f; font-variant-numeric: tabular-nums; }
@media (max-width:1024px) {
  .category-slider .svc-grid { grid-auto-columns: calc((100% - 24px) / 2.15); }
}
@media (max-width:640px) {
  .category-slider .svc-grid { grid-auto-columns: calc(100% - 28px); gap: 16px; }
  .category-slider-controls { gap: 8px; }
  .category-slider-dots { gap: 0; }
  .category-slider-dots button { width: 32px; }
  .category-slider-status { min-width: 76px; font-size: .8125rem; }
}
@media (max-width:360px) {
  .category-slider-controls { flex-wrap: wrap; }
  .category-slider-status { margin-left: auto; }
}
@media (prefers-reduced-motion:reduce) {
  .category-slider .svc-card, .category-slider .svc-card-img img { transform: none !important; }
}

/* Card treatment adapted from the owner's CSS Auto-Fit Blog Archive Grid sample.
   Existing machinery, category copy and links remain; the media uses contain fit. */
#fleetCatGrid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 28px; scroll-margin-top: 100px;
}
#services .category-slider .svc-card,
#fleetCatGrid .fleet-cat-card {
  display: flex; flex-direction: column; align-items: stretch; text-align: left;
  background: #fff; border: 1px solid #e2e8f0; border-radius: 14px;
  overflow: hidden; box-shadow: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
#services .category-slider .svc-card-img,
#fleetCatGrid .fleet-cat-img {
  position: relative; width: 100%; height: auto; aspect-ratio: 16/9;
  overflow: hidden; background: #fff;
}
#services .category-slider .svc-card-img img,
#fleetCatGrid .fleet-cat-img img {
  width: 100%; height: 100%; object-fit: contain; object-position: center;
  transform: scale(.96); transition: transform .5s ease; animation: none;
}
#services .category-slider .svc-card-badge {
  top: 14px; left: 14px; z-index: 2; background: rgba(255,255,255,.94);
  color: #1e50a2; border: 1px solid #e2e8f0; border-radius: 999px;
  padding: 5px 10px; font-size: .75rem; font-weight: 700; letter-spacing: .035em;
}
#services .category-slider .svc-card-body,
#fleetCatGrid .fleet-cat-body {
  display: flex; flex-direction: column; flex: 1; padding: 18px 20px 20px;
}
.svc-card-heading { display: flex; align-items: center; gap: 10px; }
#services .category-slider .svc-card-icon { width: 28px; height: 28px; margin: 0; flex: none; border: 0; }
#services .category-slider .svc-card-icon .technical-icon { width: 26px; height: 26px; }
#services .category-slider .svc-card-body h3,
#fleetCatGrid .fleet-cat-title {
  padding: 0; margin: 0; font-size: 1.05rem; font-weight: 700;
  line-height: 1.35; letter-spacing: -.01em; overflow-wrap: break-word;
}
#services .category-slider .svc-card-body p,
#fleetCatGrid .fleet-cat-range {
  display: block; padding: 0; margin: 8px 0 0; font-size: .9375rem;
  color: #596b82; line-height: 1.6; font-weight: 400; letter-spacing: 0;
}
#services .category-slider .svc-card-link,
#fleetCatGrid .fleet-cat-link {
  display: inline-flex; align-self: flex-start; align-items: center; gap: 8px;
  margin: auto 0 0; padding-top: 14px; font-size: .875rem; color: #1e50a2;
}
#fleetCatGrid .fleet-cat-link { margin-top: 0; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  #services .category-slider .svc-card:hover,
  #fleetCatGrid .fleet-cat-card:hover {
    transform: translateY(-4px); border-color: transparent;
    box-shadow: 0 16px 32px -16px rgba(15,23,42,.18);
  }
  #services .category-slider .svc-card:hover .svc-card-img img,
  #fleetCatGrid .fleet-cat-card:hover .fleet-cat-img img { transform: scale(1); animation: none; }
}
@media (prefers-reduced-motion:reduce) {
  #services .category-slider .svc-card,
  #fleetCatGrid .fleet-cat-card,
  #services .category-slider .svc-card-img img,
  #fleetCatGrid .fleet-cat-img img { transition: none; transform: none !important; }
}

.service-fleet-action { margin-top: 22px; }
.service-fleet-action .btn { max-width: 100%; }

/* Catalogue product photographs keep the existing 16:9 machine frames. */
.machine-card-img:has(img[src^="/images/fleet-products/"]) { background: #fff; }
.machine-card-img:has(img[src^="/images/fleet-products/"]) .machine-card-tag { display: none; }
/* Trim only empty source margins in the display box; keep the complete machine. */
.machine-card-img img[src$="/nac-tel-28.webp"] { object-view-box: inset(14% 28% 16% 28%); }

/* Match the visible logo artwork, rather than the uneven white image canvases. */
@supports (object-view-box: inset(1%)) {
  #partenaires .logo-item { --logo-scale: 1; }
  #partenaires .logo-item img {
    width: calc(var(--logo-width) * var(--logo-scale));
    height: calc(var(--logo-height) * var(--logo-scale));
    max-width: none; object-fit: contain; object-view-box: var(--logo-crop);
  }
  #partenaires img[src$="partner-1.jpeg"] {
    --logo-width: 138.4px; --logo-height: 34.7px;
    --logo-crop: inset(40.492% 6.264% 37.584% 6.264%);
  }
  #partenaires img[src$="partner-2.jpeg"] {
    --logo-width: 117.8px; --logo-height: 40.7px;
    --logo-crop: inset(31.956% 16% 32.231% 15.636%);
  }
  #partenaires img[src$="partner-3.jpeg"] {
    --logo-width: 82.7px; --logo-height: 58px;
    --logo-crop: inset(6.429% 13.065% 17.143% 10.302%);
  }
  #partenaires img[src$="partner-4.jpeg"] {
    --logo-width: 124.2px; --logo-height: 38.7px;
    --logo-crop: inset(0%);
  }
  #partenaires img[src$="partner-5.jpeg"] {
    --logo-width: 68.2px; --logo-height: 68px;
    --logo-crop: inset(8.475% 17.221% 6.591% 14.502%);
  }
  #partenaires img[src$="partner-6.jpeg"] {
    --logo-width: 132.8px; --logo-height: 36.2px;
    --logo-crop: inset(0% 2.285% 0% 5.914%);
  }
  @media (max-width: 600px) {
    #partenaires .logo-item { --logo-scale: .72; }
  }
}

/* Verinco-style header behavior: overlay the opening photo, then turn white.
   The existing header height stays constant, so content and anchor offsets do not jump.
   Pages without an opening hero keep the standard white-header fallback. */
body:has(> .hero, > .page-hero) > .header {
  position: fixed; top: 0; left: 0; right: 0;
  background: transparent; box-shadow: none;
  transition: background-color .35s ease, box-shadow .35s ease;
}
body:has(> .hero, > .page-hero) > .header.scrolled {
  background: #fff; box-shadow: 0 1px 24px rgba(11,31,74,.09);
}
body:has(> .hero, > .page-hero) > .header:not(.scrolled) :is(.nav-link,.phone-link) {
  color: #fff;
}
body:has(> .hero, > .page-hero) > .header:not(.scrolled) .nav-link::after {
  background: #fff;
}
body:has(> .hero, > .page-hero) > .header:not(.scrolled) .hamburger span {
  background: #fff;
}
@media (prefers-reduced-motion:reduce) {
  body:has(> .hero, > .page-hero) > .header { transition: none; }
}
