:root { --red:#d71920; --red-dark:#9b1118; --ink:#17191d; --cream:#f8f7f3; --line:#e8e5df; --yellow:#f6bd21; --muted:#697078; }
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { color:var(--ink); background:#fff; font-family:"DM Sans",sans-serif; line-height:1.55; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.container { width:min(1180px, calc(100% - 40px)); margin:auto; }
.topbar { background:var(--red); color:#fff; font-size:12px; letter-spacing:.04em; }
.topbar .container { min-height:36px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.top-links { display:flex; gap:22px; }
.top-links a:hover { color:#fff; }
header { position:relative; z-index:5; background:#fff; box-shadow:0 3px 14px #17191d12; }
.nav { height:92px; display:flex; align-items:center; gap:38px; }
.brand { display:flex; align-items:center; gap:14px; margin-right:auto; }
.brand img { width:68px; height:68px; flex:none; object-fit:cover; border-radius:50%; }
.brand strong { display:block; font:800 30px/1 "Barlow Condensed",sans-serif; text-transform:uppercase; letter-spacing:.015em; white-space:nowrap; }
.brand span { display:block; color:var(--red); font:600 11px/1.25 "DM Sans",sans-serif; letter-spacing:.17em; margin-top:7px; white-space:nowrap; }
.nav-links { display:flex; align-items:center; gap:27px; text-transform:uppercase; font-size:12px; font-weight:700; letter-spacing:.07em; }
.nav-links a { padding:30px 0; border-bottom:3px solid transparent; }
.nav-links a:hover, .nav-links .active { color:var(--red); border-color:var(--red); }
.nav-dropdown { position:relative; }
.nav-dropdown-toggle { min-height:86px; display:flex; align-items:center; gap:6px; padding:0; border:0; border-bottom:3px solid transparent; background:none; color:var(--ink); font:inherit; letter-spacing:inherit; text-transform:inherit; cursor:pointer; }
.nav-dropdown-toggle span { font-size:16px; line-height:1; transition:transform .25s ease; }
.nav-dropdown:hover .nav-dropdown-toggle, .nav-dropdown.open .nav-dropdown-toggle { color:var(--red); border-color:var(--red); }
.nav-dropdown.open .nav-dropdown-toggle span { transform:rotate(180deg); }
.nav-dropdown-menu { position:absolute; z-index:20; top:calc(100% + 2px); left:50%; width:340px; padding:9px; border-top:3px solid var(--red); background:#fff; box-shadow:0 18px 38px #17191d24; opacity:0; visibility:hidden; transform:translate(-50%,10px); transition:opacity .22s ease,visibility .22s ease,transform .22s ease; }
.nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown.open .nav-dropdown-menu { opacity:1; visibility:visible; transform:translate(-50%,0); }
.nav-dropdown-menu a { display:block; padding:10px 12px; border:0; color:var(--ink); font-size:11px; line-height:1.35; letter-spacing:.045em; text-transform:none; }
.nav-dropdown-menu a:hover, .nav-dropdown-menu a:focus { border:0; background:#d719200c; color:var(--red); }
.nav-cta { background:var(--red); color:#fff; padding:11px 17px !important; border:0 !important; }
.menu-btn { display:none; background:none; border:0; font-size:25px; cursor:pointer; }
.hero { min-height:570px; position:relative; color:#fff; overflow:hidden; background:#260d0f; }
.slide { position:absolute; inset:0; opacity:0; transition:opacity .7s ease; background-size:cover; background-position:center; }
.slide.active { opacity:1; }
.slide:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#0e1115dc 0%,#0e11159c 45%,#0e11152b 100%); }
.slide.one { background-image:url('../img/slider11.png'); }
.slide.two { background-image:url('../img/slider444.png'); }
.hero-content { position:relative; z-index:1; padding:112px 0 110px; max-width:670px; }
.eyebrow { color:var(--yellow); font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; margin-bottom:15px; }
h1,h2,h3 { font-family:"Barlow Condensed",sans-serif; text-transform:uppercase; line-height:.95; }
h1 { font-size:clamp(55px,7vw,90px); letter-spacing:.015em; max-width:680px; }
.hero-content p { max-width:500px; color:#f0f0ef; margin:24px 0 31px; font-size:16px; }
.btn { display:inline-flex; align-items:center; gap:10px; padding:14px 22px; border:1px solid transparent; background:var(--red); color:#fff; text-transform:uppercase; font-size:12px; font-weight:700; letter-spacing:.1em; transition:.2s; }
.btn:hover { background:var(--red-dark); transform:translateY(-2px); }
.btn.light { background:#fff; color:var(--ink); margin-left:10px; }
.slider-controls { position:absolute; z-index:2; right:6%; bottom:38px; display:flex; gap:8px; }
.slider-controls button { border:1px solid #ffffff88; color:#fff; background:#17191d66; width:42px; height:42px; cursor:pointer; font-size:18px; }
.slider-dots { position:absolute; z-index:2; left:calc((100% - 1180px)/2); bottom:46px; display:flex; gap:8px; }
.slider-dots button { width:25px; height:3px; border:0; background:#ffffff66; cursor:pointer; }
.slider-dots button.active { background:var(--yellow); }
.section { padding:88px 0; }
.section-head { display:flex; align-items:end; justify-content:space-between; margin-bottom:34px; gap:20px; }
.kicker { color:var(--red); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.18em; margin-bottom:11px; }
h2 { font-size:clamp(39px,4.5vw,58px); }
.section-head p { color:var(--muted); max-width:400px; font-size:14px; }
.category-head { display:block; text-align:center; margin-bottom:36px; }
.category-head .kicker, .category-head p { display:none; }
.category-head h2 { text-transform:none; font-family:"DM Sans",sans-serif; font-size:34px; font-weight:700; line-height:1.15; }
.category-head h2:after { content:""; display:block; width:62px; height:2px; margin:14px auto 0; background:var(--red); }
.category-section > .container { width:calc(100% - 116px); max-width:none; }
.category-wrap { position:relative; }
.category-viewport { overflow:hidden; touch-action:pan-y pinch-zoom; cursor:grab; user-select:none; }
.category-viewport.is-dragging { cursor:grabbing; }
.category-viewport.is-dragging .category { pointer-events:none; }
.category-grid { display:flex; flex-wrap:nowrap; gap:24px; transition:transform .58s cubic-bezier(.22,.61,.36,1); will-change:transform; }
.category { flex:0 0 calc((100% - 48px) / 3); height:430px; position:relative; overflow:hidden; display:block; color:#fff; background:#f4b5a4; }
.category img { position:absolute; inset:0 0 46px; width:100%; height:calc(100% - 46px); object-fit:cover; opacity:1; transition:.4s; }
.category:hover img { transform:scale(1.04); }
.category div { position:absolute; z-index:1; left:0; right:0; bottom:0; height:46px; display:grid; place-items:center; padding:0 10px; background:var(--red); }
.category h3 { font-family:"DM Sans",sans-serif; font-size:20px; font-weight:500; line-height:1.2; text-transform:none; text-align:center; }
.category span { display:none; }
.category-wrap .category-next { position:absolute; z-index:2; right:8px; top:50%; width:40px; height:40px; border:0; border-radius:50%; background:var(--ink); color:#fff; font-size:24px; cursor:pointer; touch-action:manipulation; transform:translateY(-26px); transition:background .25s ease,transform .25s ease; }
.category-wrap .category-next.is-back { right:auto; left:8px; }
.category-wrap .category-next:hover { background:var(--red); }
@media (max-width:850px) { .category-grid { gap:14px; }.category { flex-basis:calc((100% - 14px) / 2); } }
@media (prefers-reduced-motion:reduce) { .category-grid { transition:none; } }
.products { background:#f8f8f8; scroll-margin-top:90px; }
.products > .container { width:calc(100% - 116px); max-width:none; }
.products .section-head { display:block; text-align:center; margin-bottom:35px; }
.products .section-head > div { display:block; }
.products .kicker, .products .section-head > a, .products .section-head p { display:none; }
.products .section-head h2 { font-family:"DM Sans",sans-serif; font-size:32px; font-weight:700; text-transform:none; line-height:1.2; }
.products .section-head h2:after { content:""; display:block; width:62px; height:2px; margin:14px auto 0; background:var(--red); }
.product-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:28px; }
.product-viewport { overflow:hidden; touch-action:pan-y pinch-zoom; cursor:grab; user-select:none; }
.product-viewport.is-dragging { cursor:grabbing; }
.product-viewport.is-dragging .product { pointer-events:none; }
.product-grid { display:flex; flex-wrap:nowrap; gap:28px; overflow:visible; transition:transform .65s ease; }
.product { background:#fff; border:0; position:relative; transition:.2s; overflow:hidden; }
.product { flex:0 0 calc((100% - 112px) / 5); }
.product:hover { box-shadow:0 12px 30px #17191d12; transform:translateY(-3px); }
.product.product-focus { box-shadow:0 0 0 3px var(--red),0 14px 34px #d7192024; }
.product-visual { height:300px; background:#fff; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.product-visual img { width:100%; height:100%; object-fit:cover; }
.product-copy { min-height:102px; padding:12px 12px 18px; text-align:center; }
.product-copy small { display:none; }
.product h3 { font-family:"DM Sans",sans-serif; font-size:16px; font-weight:700; text-transform:none; line-height:1.35; margin:0; }
.product .btn { display:none; }
.industries { background:#fff; }
.industries .section-head { display:block; text-align:center; margin-bottom:35px; }
.industries .section-head > div { display:block; }
.industries .kicker, .industries .section-head p { display:none; }
.industries .section-head h2 { font-family:"DM Sans",sans-serif; font-size:32px; font-weight:700; text-transform:none; line-height:1.2; }
.industries .section-head h2:after { content:""; display:block; width:62px; height:2px; margin:14px auto 0; background:var(--red); }
.industry-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.industry { background:#fff; overflow:hidden; transition:.2s; }
.industry:hover { box-shadow:0 12px 30px #17191d18; transform:translateY(-3px); }
.industry img { width:100%; height:290px; object-fit:cover; }
.industry h3 { height:53px; display:grid; place-items:center; padding:0 10px; background:#bd351c; color:#fff; font-family:"DM Sans",sans-serif; font-size:19px; font-weight:500; text-transform:none; line-height:1.2; }
.service-band { background:#f6f6f6; color:#fff; padding:36px 0; }
.service-band > .service-grid { width:calc(100% - 116px); max-width:none; margin:auto; padding:29px 34px; background:var(--red); }
.service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; }
.service { min-height:68px; display:grid; grid-template-columns:50px minmax(0,1fr); align-items:center; gap:16px; padding:0 26px; border:0; }
.service-icon { width:44px; height:44px; display:block; color:#fff; }
.service-copy { min-width:0; }
.service-copy b { display:block; color:#fff; font:700 15px/1.3 "DM Sans",sans-serif; text-transform:uppercase; }
.service-copy span { display:block; margin-top:3px; color:#fff; font-size:13px; line-height:1.4; }
.about-section { position:relative; overflow:hidden; padding:100px 0; background:linear-gradient(135deg,#fff 0%,#fff 63%,#f8f7f3 63%,#f8f7f3 100%); }
.about-section:before { content:""; position:absolute; top:-95px; right:-95px; width:280px; height:280px; border:50px solid #d7192008; border-radius:50%; }
.about-section > .container { width:min(1260px,calc(100% - 80px)); }
.about { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(58px,7vw,100px); align-items:center; }
.about-gallery { position:relative; min-height:550px; }
.about-photo { position:absolute; inset:0 68px 36px 0; overflow:hidden; border:5px solid var(--red); background:#ece9e2; box-shadow:0 24px 55px #17191d1a; clip-path:polygon(22px 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%,0 22px); }
.about-photo:before { content:""; position:absolute; z-index:1; inset:0; border:1px solid #ffffff55; pointer-events:none; }
.about-photo img { width:100%; height:100%; object-fit:cover; object-position:center 47%; transition:transform .6s ease; }
.about-gallery:hover .about-photo img { transform:scale(1.025); }
.about-inset { position:absolute; z-index:2; right:0; bottom:0; width:210px; height:245px; border:8px solid #fff; overflow:hidden; background:#eee; box-shadow:0 18px 40px #17191d24; }
.about-inset img { width:100%; height:100%; object-fit:cover; object-position:center 25%; }
.about-since { position:absolute; z-index:3; top:25px; left:-12px; min-width:142px; padding:15px 18px; background:var(--yellow); color:var(--ink); box-shadow:6px 6px 0 #17191d; }
.about-since strong { display:block; font:800 29px/1 "Barlow Condensed",sans-serif; }
.about-since span { display:block; margin-top:4px; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.about-copy { position:relative; }
.about-copy .kicker { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.about-copy .kicker:before { content:""; width:35px; height:2px; background:var(--red); }
.about-copy h2 { max-width:none; font-size:clamp(23px,1.5vw,27px); line-height:1.1; letter-spacing:.01em; white-space:nowrap; }
.about-lead { max-width:650px; margin:24px 0 12px; color:#353a40; font-size:18px; font-weight:500; line-height:1.65; }
.about-text { max-width:650px; color:var(--muted); font-size:14px; line-height:1.75; }
.about-benefits { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:28px 0 30px; }
.about-benefit { min-height:96px; padding:16px 14px; background:#fff; border:1px solid var(--line); }
.about-benefit span { width:27px; height:27px; display:grid; place-items:center; margin-bottom:10px; border-radius:50%; background:#d7192010; color:var(--red); font-size:14px; font-weight:800; }
.about-benefit b { display:block; font-size:12px; line-height:1.4; }
.about-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px; }
.about-actions .btn { margin:0; }
.about-call { display:flex; flex-direction:column; color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.about-call strong { margin-top:2px; color:var(--ink); font-size:15px; letter-spacing:0; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:34px; padding-top:25px; border-top:1px solid var(--line); }
.stats div { padding-right:15px; }
.stats div + div { padding-left:22px; border-left:1px solid var(--line); }
.stats strong { display:block; color:var(--red); font:800 36px/1 "Barlow Condensed",sans-serif; }
.stats span { display:block; margin-top:7px; color:var(--muted); font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.catalog-showcase { width:100%; padding:68px clamp(24px,4.6vw,88px); background:#f5f5f5; }
.catalog-symbols { position:absolute; width:0; height:0; overflow:hidden; }
.catalog-showcase .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:50px; width:100%; }
.catalog-heading { min-height:46px; display:grid; place-items:center; margin-bottom:17px; padding:8px 16px; color:#fff; font-family:"DM Sans",sans-serif; font-size:18px; font-weight:700; line-height:1.2; text-align:center; text-transform:uppercase; border-radius:5px 5px 0 0; }
.catalog-column:nth-child(1) .catalog-heading { background:#64c310; }
.catalog-column:nth-child(2) .catalog-heading { background:#bb321d; }
.catalog-column:nth-child(3) .catalog-heading { background:#67bccb; }
.catalog-list { display:grid; gap:1px; }
.catalog-item { min-height:187px; display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:28px; padding:22px 35px; background:#fff; border:1px solid #eeeeee; border-radius:4px; transition:transform .2s ease, box-shadow .2s ease; }
.catalog-item:hover { position:relative; z-index:1; transform:translateY(-2px); box-shadow:0 12px 26px #17191d12; }
.catalog-icon { width:132px; height:112px; display:block; justify-self:center; object-fit:contain; border-radius:4px; }
.catalog-item h3 { font-family:"DM Sans",sans-serif; font-size:17px; font-weight:700; line-height:1.35; text-transform:none; }
.video-section { padding:82px 0 90px; background:#fff; }
.video-section > .container { width:min(1320px,calc(100% - 80px)); }
.video-head { margin-bottom:34px; text-align:center; }
.video-head .kicker { margin-bottom:10px; }
.video-head h2 { font-family:"DM Sans",sans-serif; font-size:clamp(32px,3.5vw,46px); font-weight:700; line-height:1.15; text-transform:none; }
.video-head h2:after { content:""; display:block; width:62px; height:2px; margin:15px auto 0; background:var(--red); }
.video-head p { max-width:680px; margin:17px auto 0; color:var(--muted); font-size:14px; line-height:1.7; }
.video-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.video-card {
  min-width:0;
  overflow:hidden;
  border:1px solid #e2e3e4;
  border-top:4px solid var(--red);
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 42px #17191d12;
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.video-card:hover {
  border-color:#d7192038;
  box-shadow:0 23px 50px #17191d1b;
  transform:translateY(-4px);
}
.safety-video {
  width:100%;
  height:clamp(430px,43vw,610px);
  display:block;
  object-fit:cover;
  background:#101215;
}
.video-card__caption {
  min-height:76px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:13px;
  padding:14px 17px;
  border-top:1px solid #e5e6e7;
}
.video-card__caption > span {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  background:#d719200d;
  color:var(--red);
  font:800 17px/1 "Barlow Condensed",sans-serif;
}
.video-card__caption small {
  display:block;
  margin-bottom:3px;
  color:#8b9197;
  font-size:8px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.video-card__caption strong {
  display:block;
  color:#202328;
  font-size:14px;
  line-height:1.3;
}
@media (max-width:900px) {
  .video-section > .container { width:calc(100% - 40px); }
  .video-grid { gap:14px; }
  .safety-video { height:clamp(380px,52vw,520px); }
  .video-card__caption { grid-template-columns:36px minmax(0,1fr); gap:10px; padding:12px; }
  .video-card__caption > span { width:35px; height:35px; }
}
@media (max-width:650px) {
  .video-section { padding:60px 0 66px; }
  .video-section > .container { width:calc(100% - 28px); }
  .video-head { margin-bottom:25px; }
  .video-head h2 { font-size:30px; }
  .video-head p { margin-top:14px; font-size:13px; }
  .video-grid { grid-template-columns:1fr; gap:20px; }
  .video-card { width:min(100%,420px); justify-self:center; border-top-width:3px; box-shadow:0 15px 34px #17191d14; }
  .safety-video { height:auto; aspect-ratio:9/16; object-fit:cover; }
  .video-card__caption { min-height:68px; padding:11px 14px; }
}
.reviews-section {
  position:relative;
  overflow:hidden;
  padding:78px 0 86px;
  background:linear-gradient(180deg,#fafafa 0%,#f3f4f4 100%);
}
.reviews-section::before {
  content:"";
  position:absolute;
  top:-185px;
  right:-145px;
  width:390px;
  height:390px;
  border:1px solid #d7192012;
  border-radius:50%;
  box-shadow:0 0 0 48px #d7192003;
  pointer-events:none;
}
.reviews-shell { position:relative; z-index:1; }
.reviews-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,390px);
  align-items:center;
  gap:clamp(42px,6vw,78px);
  margin-bottom:42px;
}
.reviews-heading__copy .kicker { margin-bottom:12px; }
.reviews-heading__copy h2 {
  max-width:none;
  color:#15171b;
  font-size:clamp(38px,3.55vw,50px);
  letter-spacing:-.01em;
  line-height:1.04;
  white-space:nowrap;
}
.reviews-heading__copy h2::after {
  content:"";
  display:block;
  width:54px;
  height:3px;
  margin-top:17px;
  background:linear-gradient(90deg,var(--red),#ff565c);
}
.reviews-heading__copy p {
  max-width:720px;
  margin-top:15px;
  color:#687078;
  font-size:14px;
  line-height:1.75;
}
.reviews-google-summary {
  min-height:116px;
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  align-items:center;
  gap:16px;
  padding:19px 21px;
  border:1px solid #dfe2e5;
  border-top:3px solid var(--red);
  background:#fff;
  box-shadow:0 14px 34px #17191d0e;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.reviews-google-summary:hover,
.reviews-google-summary:focus-visible {
  border-color:#d719204d;
  outline:none;
  box-shadow:0 19px 42px #17191d17;
  transform:translateY(-3px);
}
.reviews-google-mark {
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  border:1px solid #e5e7e9;
  border-radius:50%;
  background:#fafafa;
}
.reviews-google-mark svg { width:28px; height:28px; }
.reviews-google-summary__copy { min-width:0; }
.reviews-google-summary__copy small {
  display:block;
  color:var(--red);
  font-size:9px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.reviews-google-summary__copy > strong {
  display:block;
  margin-top:5px;
  color:#17191d;
  font:800 23px/1 "Barlow Condensed",sans-serif;
  text-transform:uppercase;
}
.reviews-google-summary__bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:9px;
}
.reviews-google-summary__bottom em {
  color:#6c737a;
  font-size:9px;
  font-style:normal;
  font-weight:700;
  white-space:nowrap;
}
.reviews-google-summary__bottom em b { color:var(--red); font-size:12px; }
.review-stars {
  color:#f4ae13;
  font-size:16px;
  letter-spacing:2px;
  line-height:1;
  white-space:nowrap;
}
.reviews-marquee {
  width:100%;
  overflow:hidden;
  touch-action:pan-y;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
}
.reviews-track {
  width:max-content;
  display:flex;
  align-items:stretch;
  will-change:transform;
}
.reviews-track.is-ready { animation:reviewsMarquee 52s linear infinite; }
.reviews-track.is-paused { animation-play-state:paused; }
.reviews-group {
  display:flex;
  align-items:stretch;
  gap:22px;
  padding-right:22px;
}
.review-card {
  width:clamp(330px,31vw,445px);
  min-height:318px;
  display:flex;
  flex:0 0 auto;
  flex-direction:column;
  padding:29px 30px 25px;
  border:1px solid #e0e3e5;
  border-top:4px solid var(--red);
  background:#fff;
  box-shadow:0 16px 40px #17191d0e;
  cursor:pointer;
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.review-card:hover,
.review-card.is-selected {
  border-color:#d7192038;
  box-shadow:0 22px 46px #17191d19;
  transform:translateY(-4px);
}
.review-card.is-selected { border-top-color:var(--red-dark); }
.review-card__top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.review-google-badge {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border:1px solid #e4e7e9;
  border-radius:999px;
  background:#f8f9fa;
  color:#697078;
  font-size:9px;
  font-weight:700;
  white-space:nowrap;
}
.review-google-badge i { color:#4285f4; font-size:12px; }
.review-card__quote {
  position:relative;
  margin:36px 0 31px;
  padding-left:19px;
  color:#545d65;
  font-size:15px;
  line-height:1.8;
}
.review-card__quote::before {
  content:"\201C";
  position:absolute;
  top:-26px;
  left:-3px;
  color:#d719201a;
  font:800 70px/1 "Barlow Condensed",sans-serif;
}
.review-card__author {
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 34px;
  align-items:center;
  gap:13px;
  margin-top:auto;
  padding-top:20px;
  border-top:1px solid #e5e7e9;
}
.review-avatar {
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border:3px solid #fff;
  border-radius:50%;
  background:linear-gradient(135deg,#ed3d43,var(--red-dark));
  color:#fff;
  font-size:13px;
  font-weight:800;
  box-shadow:0 7px 17px #d719202e;
}
.review-avatar--dark { background:linear-gradient(135deg,#3b4047,#15171b); box-shadow:0 7px 17px #17191d2b; }
.review-avatar--gold { background:linear-gradient(135deg,#f6c33c,#d48700); box-shadow:0 7px 17px #e5a31938; }
.review-author-copy { min-width:0; }
.review-author-copy strong {
  display:block;
  color:#22252a;
  font-size:13px;
  line-height:1.35;
}
.review-author-copy small {
  display:block;
  margin-top:4px;
  color:#8a9096;
  font-size:10px;
}
.review-author-copy small i { margin-right:4px; color:var(--red); }
.review-check {
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border:2px solid #d719203d;
  border-radius:50%;
  color:var(--red);
  font-size:11px;
}
@keyframes reviewsMarquee {
  to { transform:translateX(-50%); }
}
@media (max-width:850px) {
  .reviews-heading { grid-template-columns:1fr; align-items:start; gap:30px; }
  .reviews-google-summary { width:min(100%,430px); }
}
@media (max-width:600px) {
  .reviews-section { padding:62px 0 68px; }
  .reviews-section::before { top:-145px; right:-130px; width:300px; height:300px; box-shadow:0 0 0 34px #d7192003; }
  .reviews-heading { width:calc(100% - 28px); margin-bottom:34px; }
  .reviews-heading__copy h2 { font-size:32px; white-space:normal; }
  .reviews-heading__copy h2::after { width:56px; height:3px; margin-top:16px; }
  .reviews-heading__copy p { margin-top:15px; font-size:13px; }
  .reviews-google-summary { min-height:112px; grid-template-columns:52px minmax(0,1fr); gap:14px; padding:18px; }
  .reviews-google-mark { width:52px; height:52px; }
  .reviews-google-mark svg { width:27px; height:27px; }
  .reviews-google-summary__copy > strong { font-size:22px; }
  .reviews-google-summary__bottom em { font-size:8px; }
  .reviews-marquee {
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 2.5%,#000 97.5%,transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 2.5%,#000 97.5%,transparent 100%);
  }
  .reviews-track.is-ready { animation-duration:43s; }
  .reviews-group { gap:14px; padding-right:14px; }
  .review-card { width:min(86vw,340px); min-height:315px; padding:24px 22px 22px; }
  .review-card__top { gap:10px; }
  .review-stars { font-size:14px; letter-spacing:1.5px; }
  .review-google-badge { padding:6px 8px; font-size:8px; }
  .review-card__quote { margin:32px 0 26px; font-size:13px; line-height:1.75; }
  .review-card__author { grid-template-columns:48px minmax(0,1fr) 30px; gap:11px; padding-top:17px; }
  .review-avatar { width:48px; height:48px; }
  .review-check { width:29px; height:29px; }
}
@media (prefers-reduced-motion:reduce) {
  .reviews-marquee {
    overflow-x:auto;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .reviews-track.is-ready { animation:none; }
  .reviews-group[aria-hidden="true"] { display:none; }
  .review-card { transition:none; }
}
.booking-section { position:relative; overflow:hidden; padding:96px 0; background:#17191d; color:#fff; }
.booking-section:before { content:""; position:absolute; top:-180px; right:-120px; width:480px; height:480px; border:85px solid #d719200d; border-radius:50%; }
.booking-section:after { content:""; position:absolute; left:-130px; bottom:-165px; width:340px; height:340px; background:#d7192008; transform:rotate(35deg); }
.booking-layout { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,.9fr) minmax(540px,1.1fr); align-items:center; gap:clamp(55px,7vw,100px); }
.booking-label-row { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:18px; }
.booking-copy .kicker { margin:0; color:#ff3139; }
.booking-availability { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; background:#ffffff08; border:1px solid #ffffff10; color:#aeb3b8; font-size:9px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; white-space:nowrap; }
.booking-availability i { width:7px; height:7px; border-radius:50%; background:#29c871; box-shadow:0 0 0 4px #29c87118; }
.booking-copy h2 { max-width:560px; margin-bottom:21px; font-size:clamp(40px,3.6vw,52px); line-height:1; }
.booking-copy h2 span { display:block; white-space:nowrap; }
.booking-copy > p { max-width:550px; color:#b9bdc2; font-size:15px; line-height:1.75; }
.booking-steps { display:grid; gap:10px; margin:27px 0; }
.booking-step { display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:13px; padding:13px 15px; background:#ffffff05; border:1px solid #ffffff0d; transition:border-color .2s,transform .2s; }
.booking-step:hover { border-color:#d7192055; transform:translateX(3px); }
.booking-step > span { width:36px; height:36px; display:grid; place-items:center; border:1px solid #d7192066; background:#d7192010; color:#ff3b42; font:700 12px "DM Sans",sans-serif; }
.booking-step b { display:block; color:#fff; font-size:13px; }
.booking-step small { display:block; margin-top:3px; color:#858b91; font-size:10px; line-height:1.45; }
.booking-bottom { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; padding:18px 20px; background:#202226; border:1px solid #d719204c; border-left:3px solid var(--red); }
.booking-contact { display:inline-flex; align-items:center; gap:13px; }
.booking-contact svg { width:34px; height:34px; color:var(--red); }
.booking-contact span { display:block; color:#8e949a; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.booking-contact strong { display:block; margin-top:3px; color:#fff; font-size:17px; }
.booking-trust { padding-left:20px; border-left:1px solid #ffffff14; text-align:center; }
.booking-trust strong { display:block; color:var(--red); font:800 29px/1 "Barlow Condensed",sans-serif; }
.booking-trust span { display:block; margin-top:5px; color:#8e949a; font-size:8px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.booking-card { padding:36px; background:#202226; border:1px solid #d7192066; border-top:4px solid var(--red); box-shadow:0 25px 65px #0005; }
.booking-card h3 { color:#fff; font-size:29px; line-height:1.05; }
.booking-card > p { margin:9px 0 25px; color:#9ea3a8; font-size:13px; }
.booking-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
.booking-field { min-width:0; }
.booking-field.full { grid-column:1/-1; }
.booking-field label { display:block; margin-bottom:7px; color:#d8dade; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.booking-field input, .booking-field select, .booking-field textarea { width:100%; height:49px; padding:0 14px; border:1px solid #ffffff18; border-radius:0; outline:0; background:#17191d; color:#fff; font:500 13px "DM Sans",sans-serif; transition:border-color .2s,box-shadow .2s; }
.booking-field textarea { height:92px; padding-top:13px; resize:vertical; }
.booking-field input::placeholder, .booking-field textarea::placeholder { color:#777d83; }
.booking-field input:focus, .booking-field select:focus, .booking-field textarea:focus { border-color:var(--red); box-shadow:0 0 0 3px #d7192018; }
.booking-field select { color-scheme:dark; cursor:pointer; }
.booking-field input[type="date"] { color-scheme:dark; }
.booking-submit { width:100%; justify-content:center; border:0; cursor:pointer; }
.booking-note { grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:7px; margin-top:-2px; color:#868c92; font-size:10px; text-align:center; }
.booking-note span { color:#27c66f; }
.gallery-section { padding:72px 0 80px; background:var(--cream); }
.gallery-section > .container { width:min(1280px,calc(100% - 40px)); }
.gallery-heading { margin-bottom:36px; text-align:center; }
.gallery-heading h2 { font-family:"DM Sans",sans-serif; font-size:clamp(34px,3.8vw,48px); font-weight:700; line-height:1.15; text-transform:none; }
.gallery-heading h2:after { content:""; display:block; width:62px; height:2px; margin:14px auto 0; background:var(--red); }
.gallery-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.gallery-item { position:relative; display:block; min-width:0; aspect-ratio:4/5; overflow:hidden; border:1px solid #e5e2dc; background:#fff; box-shadow:0 9px 24px #17191d0d; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.gallery-item:hover img { transform:scale(1.035); }
@media (max-width:1100px) { .gallery-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.map-section { position:relative; width:100%; height:450px; overflow:hidden; background:#d9d9d9; border-top:4px solid var(--red); }
.map-section iframe { width:100%; height:100%; display:block; border:0; }
.map-card { position:absolute; z-index:1; top:28px; right:clamp(20px,6vw,110px); left:auto; width:min(355px,calc(100% - 40px)); padding:27px 28px; transform:none; background:#17191df0; color:#fff; border-left:4px solid var(--red); box-shadow:0 18px 48px #0005; backdrop-filter:blur(8px); }
.map-card .kicker { margin-bottom:9px; color:#ff3139; }
.map-card h2 { font-size:38px; line-height:1; }
.map-card p { margin:12px 0 20px; color:#b9bdc2; font-size:13px; line-height:1.6; }
.map-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.map-actions .btn { padding:12px 16px; }
.map-phone { color:#fff; font-size:12px; font-weight:700; }
footer { position:relative; background:#0e1013; color:#9ca2a8; border-top:1px solid #ffffff0c; }
.footer-grid { display:grid; grid-template-columns:1.45fr .75fr 1fr 1.25fr; gap:clamp(40px,5vw,75px); padding-top:68px; padding-bottom:56px; }
.footer-brand .brand { display:inline-flex; margin:0; }
.footer-brand .brand img { width:62px; height:62px; border:2px solid #ffffff12; }
.footer-brand .brand strong { color:#fff; font-size:27px; }
.footer-brand p { max-width:330px; margin:21px 0 0; color:#aeb3b8; font-size:13px; line-height:1.75; }
.footer-brand .footer-brand-extra { margin:9px 0 23px; }
.footer-socials { display:flex; align-items:center; gap:9px; }
.footer-social-link { width:39px; height:39px; display:grid; place-items:center; margin:0; border:1px solid #ffffff17; background:#ffffff06; color:#fff; transition:background .2s,border-color .2s,transform .2s; }
.footer-social-link:hover { background:var(--red); border-color:var(--red); color:#fff; transform:translateY(-2px); }
.footer-social-link svg { width:18px; height:18px; }
.footer-column h3 { position:relative; margin-bottom:23px; padding-bottom:12px; color:#fff; font:700 15px/1.2 "DM Sans",sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.footer-column h3:after { content:""; position:absolute; left:0; bottom:0; width:32px; height:2px; background:var(--red); }
.footer-links { display:grid; gap:11px; }
.footer-links a { display:flex; align-items:center; gap:9px; margin:0; color:#aeb3b8; font-size:13px; line-height:1.45; transition:color .2s,transform .2s; }
.footer-links a:before { content:"›"; color:var(--red); font-size:18px; line-height:1; }
.footer-links a:hover { color:#fff; transform:translateX(3px); }
.footer-contact-list { display:grid; gap:16px; }
.footer-contact-item { display:grid; grid-template-columns:36px minmax(0,1fr); align-items:center; gap:12px; color:#aeb3b8; font-size:12px; line-height:1.5; }
.footer-contact-item svg { width:36px; height:36px; padding:9px; border:1px solid #d719203d; background:#d719200d; color:#ff343b; }
.footer-contact-item a { display:block; margin:0; color:#aeb3b8; font-size:12px; }
.footer-contact-item a:hover { color:#fff; }
.footer-contact-item strong { display:block; margin-bottom:2px; color:#fff; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.footer-bottom { background:#0a0c0f; border-top:1px solid #ffffff10; }
.copyright { min-height:58px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:#777e85; font-size:10px; }
.copyright a { color:#aeb3b8; }
.copyright a:hover { color:#fff; }
.floating-actions { position:fixed; z-index:20; right:20px; bottom:20px; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.floating-action { position:relative; width:52px; height:52px; display:grid; place-items:center; flex:none; border:0; border-radius:50%; color:#fff; font-family:inherit; cursor:pointer; box-shadow:0 7px 22px #0004; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.floating-action:hover, .floating-action:focus-visible { color:#fff; outline:none; transform:translateY(-2px) scale(1.04); box-shadow:0 10px 26px #0005; }
.floating-action svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.floating-call { background:var(--red); }
.floating-call:hover, .floating-call:focus-visible { background:var(--red-dark); }
.floating-whatsapp { background:#20bd68; }
.floating-whatsapp:hover, .floating-whatsapp:focus-visible { background:#159d53; }
.floating-whatsapp svg { fill:currentColor; stroke:none; }
.floating-scroll-top { background:#24272c; }
.floating-scroll-top:hover, .floating-scroll-top:focus-visible { background:#0f1114; }
.floating-label { position:absolute; top:50%; right:62px; padding:7px 10px; border-radius:5px; background:#17191ded; color:#fff; font-size:10px; font-weight:700; letter-spacing:.04em; line-height:1; white-space:nowrap; opacity:0; visibility:hidden; pointer-events:none; transform:translate(7px,-50%); transition:opacity .2s ease,visibility .2s ease,transform .2s ease; }
.floating-label::after { content:""; position:absolute; top:50%; right:-5px; width:10px; height:10px; background:#17191ded; transform:translateY(-50%) rotate(45deg); }
.floating-action:hover .floating-label, .floating-action:focus-visible .floating-label { opacity:1; visibility:visible; transform:translate(0,-50%); }
@media (max-width:850px) { .nav { height:72px; gap:15px; }.menu-btn { display:block; }.nav-links { display:none; position:absolute; top:72px; left:0; right:0; max-height:calc(100vh - 72px); overflow-y:auto; background:#fff; padding:8px 20px 18px; box-shadow:0 8px 15px #0001; flex-direction:column; align-items:stretch; gap:0; }.nav-links.open { display:flex; }.nav-links a { padding:12px 0; }.nav-dropdown-toggle { width:100%; min-height:0; justify-content:space-between; padding:12px 0; }.nav-dropdown-menu { position:static; width:100%; max-height:0; overflow:hidden; padding:0 0 0 12px; border:0; box-shadow:none; opacity:1; visibility:visible; transform:none; transition:max-height .3s ease; }.nav-dropdown:hover .nav-dropdown-menu { max-height:0; transform:none; }.nav-dropdown.open .nav-dropdown-menu { max-height:460px; transform:none; }.nav-links .nav-dropdown-menu a { padding:9px 11px; border-left:2px solid #d7192026; font-size:10px; }.nav-dropdown-menu a:hover, .nav-dropdown-menu a:focus { border-left-color:var(--red); }.brand strong { font-size:21px; }.hero { min-height:530px; }.hero-content { padding:95px 0 110px; }.slider-dots { left:20px; }.category-section > .container, .products > .container { width:calc(100% - 40px); }.category-grid { grid-template-columns:repeat(2,1fr); }.product-grid { grid-template-columns:repeat(3,1fr); gap:14px; }.product-visual { height:220px; }.industry-grid { grid-template-columns:repeat(2,1fr); gap:14px; }.industry img { height:220px; }.category { height:340px; }.category-next { right:-11px; }.about { grid-template-columns:1fr; gap:35px; }.about-photo { height:330px; }.service-grid { grid-template-columns:repeat(2,1fr); }.service:nth-child(2) { border:0; }.footer-grid { grid-template-columns:repeat(2,1fr); gap:32px; } }
@media (max-width:850px) { .nav { height:72px; gap:15px; }.menu-btn { display:block; }.nav-links { display:none; position:absolute; top:72px; left:0; right:0; background:#fff; padding:8px 20px 18px; box-shadow:0 8px 15px #0001; flex-direction:column; align-items:stretch; gap:0; }.nav-links.open { display:flex; }.nav-links a { padding:12px 0; }.brand strong { font-size:21px; }.hero { min-height:530px; }.hero-content { padding:95px 0 110px; }.slider-dots { left:20px; }.category-section > .container, .products > .container { width:calc(100% - 40px); }.category-grid { grid-template-columns:repeat(2,1fr); }.product { flex-basis:calc((100% - 28px) / 3); }.product-grid { gap:14px; }.product-visual { height:220px; }.industry-grid { grid-template-columns:repeat(2,1fr); gap:14px; }.industry img { height:220px; }.category { height:340px; }.category-next { right:-11px; }.about { grid-template-columns:1fr; gap:35px; }.about-photo { height:330px; }.service-grid { grid-template-columns:repeat(2,1fr); }.service:nth-child(2) { border:0; }.footer-grid { grid-template-columns:repeat(2,1fr); gap:32px; } }
@media (max-width:520px) { .container { width:min(100% - 28px,1180px); }.topbar .container { font-size:10px; }.top-links { gap:10px; }.top-links a:first-child { display:none; }.brand img { width:45px;height:45px; }.brand strong { font-size:19px; }.hero-content p { font-size:14px; }.btn { padding:12px 15px; }.btn.light { margin-left:5px; }.category-wrap, .products .container { overflow:hidden; }.category-grid, .product-grid { display:flex; flex-wrap:nowrap; gap:10px; overflow:visible; }.category { flex:0 0 calc((100% - 10px) / 2); height:250px; }.category img { inset:0 0 43px; height:calc(100% - 43px); }.category div { height:43px; }.category h3 { font-size:14px; }.category-head h2 { font-size:27px; }.category-next { right:-8px; width:32px; height:32px; font-size:19px; }.product { flex:0 0 calc((100% - 10px) / 2); }.product-visual { height:170px; }.product-copy { min-height:85px; padding:10px 7px 15px; }.product h3 { font-size:13px; }.industries .section-head h2 { font-size:27px; }.industry-grid { grid-template-columns:repeat(2,1fr); gap:10px; }.industry img { height:170px; }.industry h3 { height:42px; font-size:14px; }.section { padding:60px 0; }.section-head { display:block; }.section-head p { margin-top:13px; }.service-grid { gap:17px 10px; }.service { border:0; }.service b { font-size:20px; }.footer-grid { grid-template-columns:1fr 1fr; gap:24px 18px; }.footer-brand { grid-column:1/-1; }.copyright { display:block; }.copyright span { display:block; margin-top:8px; } }
@media (max-width:520px) { .container { width:min(100% - 28px,1180px); }.topbar .container { font-size:10px; }.top-links { gap:10px; }.top-links a:first-child { display:none; }.brand img { width:45px;height:45px; }.brand strong { font-size:19px; }.hero-content p { font-size:14px; }.btn { padding:12px 15px; }.btn.light { margin-left:5px; }.category-wrap, .products .container { overflow:hidden; }.category-grid { display:flex; flex-wrap:nowrap; gap:10px; overflow:visible; }.category { flex:0 0 calc((100% - 10px) / 2); height:250px; }.category img { inset:0 0 43px; height:calc(100% - 43px); }.category div { height:43px; }.category h3 { font-size:14px; }.category-head h2 { font-size:27px; }.category-next { right:-8px; width:32px; height:32px; font-size:19px; }.product-grid { gap:10px; }.product { flex-basis:calc((100% - 10px) / 2); }.product-visual { height:170px; }.product-copy { min-height:85px; padding:10px 7px 15px; }.product h3 { font-size:13px; }.industries .section-head h2 { font-size:27px; }.industry-grid { grid-template-columns:repeat(2,1fr); gap:10px; }.industry img { height:170px; }.industry h3 { height:42px; font-size:14px; }.section { padding:60px 0; }.section-head { display:block; }.section-head p { margin-top:13px; }.service-grid { gap:17px 10px; }.service { border:0; }.service b { font-size:20px; }.footer-grid { grid-template-columns:1fr 1fr; gap:24px 18px; }.footer-brand { grid-column:1/-1; }.copyright { display:block; }.copyright span { display:block; margin-top:8px; } }
@media (max-width:1200px) { .catalog-grid { gap:24px; }.catalog-item { grid-template-columns:115px minmax(0,1fr); gap:18px; padding:20px; }.catalog-icon { width:108px; height:100px; } }
@media (max-width:900px) { .catalog-showcase { padding:55px 20px; }.catalog-grid { grid-template-columns:1fr; gap:32px; }.catalog-item { min-height:155px; grid-template-columns:135px minmax(0,1fr); padding:18px 30px; }.catalog-icon { width:120px; height:105px; } }
@media (max-width:520px) { .catalog-showcase { padding:42px 14px; }.catalog-grid { gap:25px; }.catalog-heading { min-height:43px; margin-bottom:10px; font-size:15px; }.catalog-item { min-height:126px; grid-template-columns:94px minmax(0,1fr); gap:14px; padding:14px 16px; }.catalog-icon { width:88px; height:82px; }.catalog-item h3 { font-size:14px; } }
@media (max-width:900px) { .about-section { padding:75px 0; }.about-section > .container { width:min(100% - 40px,680px); }.about { grid-template-columns:1fr; gap:55px; }.about-gallery { min-height:520px; }.about-photo { height:auto; inset:0 72px 35px 0; }.about-copy h2 { max-width:620px; }.about-lead, .about-text { max-width:none; } }
@media (max-width:600px) { .about-section { padding:60px 0; background:linear-gradient(145deg,#fff 0%,#fff 75%,#f8f7f3 75%); }.about-section > .container { width:calc(100% - 28px); }.about-gallery { min-height:400px; }.about-photo { inset:0 42px 28px 0; }.about-inset { width:145px; height:175px; border-width:6px; }.about-since { top:18px; left:-4px; min-width:116px; padding:12px 14px; box-shadow:4px 4px 0 #17191d; }.about-since strong { font-size:24px; }.about-copy h2 { font-size:28px; white-space:normal; }.about-lead { margin-top:20px; font-size:16px; }.about-benefits { grid-template-columns:1fr; gap:8px; margin:24px 0; }.about-benefit { min-height:0; display:grid; grid-template-columns:29px 1fr; align-items:center; gap:11px; padding:12px 14px; }.about-benefit span { margin:0; }.about-actions { align-items:flex-start; flex-direction:column; gap:14px; }.stats { margin-top:28px; padding-top:22px; }.stats div { padding-right:8px; }.stats div + div { padding-left:12px; }.stats strong { font-size:30px; }.stats span { font-size:8px; line-height:1.35; } }
@media (max-width:1000px) { .service-band > .service-grid { width:calc(100% - 40px); padding:25px 22px; }.service-grid { grid-template-columns:repeat(2,1fr); gap:24px 10px; }.service { padding:0 18px; } }
@media (max-width:520px) { .service-band { padding:25px 0; }.service-band > .service-grid { width:calc(100% - 28px); padding:22px 12px; }.service-grid { gap:22px 6px; }.service { min-height:58px; grid-template-columns:36px minmax(0,1fr); gap:9px; padding:0 7px; }.service-icon { width:33px; height:33px; }.service-copy b { font-size:11px; }.service-copy span { margin-top:2px; font-size:9px; } }
@media (max-width:980px) { .booking-section { padding:78px 0; }.booking-layout { grid-template-columns:1fr; gap:48px; }.booking-copy { max-width:680px; }.booking-copy h2 { max-width:650px; }.booking-card { max-width:720px; width:100%; } }
@media (max-width:600px) { .booking-section { padding:62px 0; }.booking-copy h2 { font-size:clamp(27px,8.8vw,34px); }.booking-copy > p { font-size:14px; }.booking-card { padding:27px 18px; }.booking-card h3 { font-size:25px; }.booking-form { grid-template-columns:1fr; gap:15px; }.booking-field.full { grid-column:auto; }.booking-note { grid-column:auto; }.booking-submit { min-height:49px; } }
@media (max-width:900px) { .gallery-section { padding:62px 0 68px; }.gallery-heading { margin-bottom:30px; }.gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; } }
@media (max-width:650px) { .gallery-section { padding:50px 0 54px; }.gallery-section > .container { width:calc(100% - 28px); }.gallery-heading { margin-bottom:25px; }.gallery-heading h2 { font-size:32px; }.gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } }
@media (max-width:520px) { .gallery-grid { grid-template-columns:1fr; gap:12px; } }
@media (max-width:600px) { .map-section { height:500px; }.map-card { top:16px; right:14px; bottom:auto; left:14px; width:auto; padding:21px 20px; transform:none; }.map-card h2 { font-size:31px; }.map-card p { margin:9px 0 15px; }.map-actions .btn { padding:11px 14px; } }
@media (max-width:900px) { .footer-grid { grid-template-columns:repeat(2,1fr); gap:42px 55px; }.footer-brand { grid-column:1/-1; }.footer-brand p { max-width:460px; } }
@media (max-width:520px) { .footer-grid { grid-template-columns:1fr; gap:35px; padding-top:52px; padding-bottom:42px; }.footer-brand { grid-column:auto; }.footer-brand .brand img { width:52px; height:52px; }.footer-brand .brand strong { font-size:23px; }.footer-column h3 { margin-bottom:18px; }.copyright { min-height:72px; display:block; padding-top:17px; padding-bottom:17px; }.copyright span { margin:0; }.copyright span + span { margin-top:7px; } }

/* Keep the enlarged brand balanced across tablet and mobile headers. */
@media (max-width:850px) {
  .nav { height:78px; }
  .nav > .brand { gap:11px; }
  .nav > .brand img { width:58px; height:58px; }
  .nav > .brand strong { font-size:23px; }
  .nav > .brand span { margin-top:5px; font-size:9.5px; letter-spacing:.15em; }
  .nav-links { top:78px; }
}
@media (max-width:520px) {
  .nav { height:72px; }
  .nav > .brand { gap:9px; }
  .nav > .brand img { width:50px; height:50px; }
  .nav > .brand strong { font-size:20px; }
  .nav > .brand span { margin-top:4px; font-size:8.5px; letter-spacing:.12em; }
  .nav-links { top:72px; }
}

/* Quote request modal opened from the primary navigation CTA. */
.quote-modal {
  width:min(720px,calc(100% - 32px));
  max-width:none;
  max-height:min(90vh,820px);
  margin:auto;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:12px;
  background:#202226;
  color:#fff;
  box-shadow:0 30px 90px #0009;
}
.quote-modal::backdrop {
  background:#090b0dc7;
  backdrop-filter:blur(5px);
}
.quote-modal__panel {
  position:relative;
  max-height:min(90vh,820px);
  padding:38px;
  overflow-y:auto;
  border-top:5px solid var(--red);
}
.quote-modal__close {
  position:absolute;
  z-index:1;
  top:15px;
  right:15px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid #ffffff1a;
  border-radius:50%;
  background:#17191d;
  color:#fff;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.quote-modal__close:hover,
.quote-modal__close:focus-visible {
  border-color:var(--red);
  background:var(--red);
  outline:none;
  transform:rotate(4deg);
}
.quote-modal__close svg {
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
}
.quote-modal__header { padding-right:54px; }
.quote-modal__eyebrow {
  display:block;
  margin-bottom:9px;
  color:#ff3b42;
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.quote-modal__header h2 { font-size:38px; line-height:1; }
.quote-modal__header p {
  max-width:560px;
  margin:11px 0 25px;
  color:#aeb3b8;
  font-size:13px;
  line-height:1.65;
}
.quote-form .booking-submit { min-height:49px; }

@media (max-width:600px) {
  .quote-modal { width:calc(100% - 20px); max-height:calc(100vh - 20px); }
  .quote-modal__panel { max-height:calc(100vh - 20px); padding:28px 18px 24px; }
  .quote-modal__header { padding-right:42px; }
  .quote-modal__header h2 { font-size:31px; }
  .quote-modal__header p { margin-bottom:21px; font-size:12px; }
  .quote-modal__close { top:12px; right:12px; width:36px; height:36px; }
  .quote-form { grid-template-columns:1fr; gap:14px; }
  .quote-form .booking-field.full,
  .quote-form .booking-note { grid-column:auto; }
}

/* Refined primary navigation and product dropdown. */
header { border-bottom:1px solid #17191d0d; }
.nav { height:88px; gap:32px; }
.nav-links { gap:5px; }
.nav-links > a,
.nav-dropdown-toggle {
  position:relative;
  min-height:88px;
  display:flex;
  align-items:center;
  padding:0 13px;
  border:0;
  color:#292c31;
  transition:color .2s ease;
}
.nav-links > a::after,
.nav-dropdown-toggle::after {
  content:"";
  position:absolute;
  right:13px;
  bottom:0;
  left:13px;
  height:3px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .22s ease;
}
.nav-links > a:hover,
.nav-links > a.active,
.nav-dropdown:hover .nav-dropdown-toggle,
.nav-dropdown.open .nav-dropdown-toggle { border-color:transparent; color:var(--red); }
.nav-links > a:hover::after,
.nav-links > a.active::after,
.nav-dropdown:hover .nav-dropdown-toggle::after,
.nav-dropdown.open .nav-dropdown-toggle::after { transform:scaleX(1); }
.nav-dropdown-toggle { gap:9px; font-weight:700; }
.nav-dropdown-toggle svg { width:10px; height:7px; overflow:visible; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; transition:transform .22s ease; }
.nav-dropdown.open .nav-dropdown-toggle svg { transform:rotate(180deg); }
.nav-dropdown-toggle.active { color:var(--red); }
.nav-dropdown-toggle.active::after { transform:scaleX(1); }
.nav-links > .nav-cta {
  min-height:46px;
  margin-left:11px;
  padding:0 22px !important;
  border:1px solid var(--red) !important;
  color:#fff;
  box-shadow:0 8px 20px #d719201b;
  transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.nav-links > .nav-cta::after { display:none; }
.nav-links > .nav-cta:hover { background:var(--red-dark); color:#fff; box-shadow:0 11px 24px #9b111827; transform:translateY(-2px); }
.nav-dropdown-menu {
  top:calc(100% - 4px);
  left:50%;
  width:min(590px,calc(100vw - 32px));
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px;
  padding:13px;
  border:1px solid #17191d12;
  border-top:3px solid var(--red);
  border-radius:0 0 12px 12px;
  box-shadow:0 22px 50px #17191d25;
  transform:translate(-50%,12px);
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown.open .nav-dropdown-menu { transform:translate(-50%,0); }
.nav-links .nav-dropdown-menu a {
  min-height:44px;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:7px 10px;
  border:1px solid transparent;
  border-radius:7px;
  color:#25282d;
  font-size:11px;
  font-weight:600;
  line-height:1.35;
  letter-spacing:.02em;
}
.nav-links .nav-dropdown-menu a::before {
  content:"→";
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#d719200d;
  color:var(--red);
  font-size:14px;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.nav-links .nav-dropdown-menu a::after { display:none; }
.nav-links .nav-dropdown-menu a:hover,
.nav-links .nav-dropdown-menu a:focus {
  border-color:#d719201f;
  background:#d7192008;
  color:var(--red);
  outline:none;
}
.nav-links .nav-dropdown-menu a:hover::before,
.nav-links .nav-dropdown-menu a:focus::before { background:var(--red); color:#fff; transform:translateX(2px); }

@media (max-width:850px) {
  .nav { height:78px; }
  .nav-links { top:78px; gap:0; padding:10px 20px 20px; }
  .nav-links > a,
  .nav-dropdown-toggle { min-height:46px; padding:0 4px; }
  .nav-links > a::after,
  .nav-dropdown-toggle::after { right:0; bottom:3px; left:0; height:2px; transform-origin:left; }
  .nav-links > .nav-cta { min-height:45px; justify-content:center; margin:10px 0 0; padding:0 18px !important; }
  .nav-dropdown-toggle { width:100%; justify-content:space-between; }
  .nav-dropdown-menu {
    position:static;
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    gap:3px;
    max-height:0;
    padding:0 8px;
    border:0;
    border-radius:8px;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    transition:max-height .34s ease,padding .34s ease;
  }
  .nav-dropdown:hover .nav-dropdown-menu { max-height:0; padding-top:0; padding-bottom:0; transform:none; }
  .nav-dropdown.open .nav-dropdown-menu { max-height:600px; padding-top:8px; padding-bottom:9px; transform:none; }
  .nav-links .nav-dropdown-menu a { min-height:40px; grid-template-columns:25px minmax(0,1fr); gap:9px; padding:6px 8px; border-left:0; font-size:10px; }
  .nav-links .nav-dropdown-menu a::before { width:25px; height:25px; font-size:12px; }
}

@media (max-width:520px) {
  .nav { height:72px; }
  .nav-links { top:72px; }
}

/* Product-specific dropdown icons and premium panel finish. */
.nav-product-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.nav-dropdown-menu {
  width:min(620px,calc(100vw - 32px));
  gap:7px;
  padding:14px;
  border-color:#17191d14;
  border-radius:12px;
  background:#f7f8fa;
  box-shadow:0 24px 60px #17191d2b;
}
.nav-links .nav-dropdown-menu a {
  min-height:50px;
  grid-template-columns:36px minmax(0,1fr) 15px;
  gap:10px;
  padding:6px 10px;
  border-color:#17191d0d;
  border-radius:9px;
  background:#fff;
  box-shadow:0 2px 8px #17191d08;
  transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.nav-links .nav-dropdown-menu a::before { content:none; display:none; }
.nav-links .nav-dropdown-menu a::after {
  content:"›";
  position:static;
  display:block;
  width:auto;
  height:auto;
  color:#a9adb2;
  font-size:20px;
  line-height:1;
  transform:none;
  transition:color .2s ease,transform .2s ease;
}
.nav-product-icon {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:1px solid #d7192015;
  border-radius:9px;
  background:#d719200b;
  color:var(--red);
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.nav-product-icon svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.65; }
.nav-product-label { min-width:0; }
.nav-links .nav-dropdown-menu a:hover,
.nav-links .nav-dropdown-menu a:focus {
  border-color:#d7192030;
  background:#fff;
  box-shadow:0 7px 18px #d7192010;
  transform:translateY(-1px);
}
.nav-links .nav-dropdown-menu a:hover .nav-product-icon,
.nav-links .nav-dropdown-menu a:focus .nav-product-icon { border-color:var(--red); background:var(--red); color:#fff; transform:scale(1.04); }
.nav-links .nav-dropdown-menu a:hover::after,
.nav-links .nav-dropdown-menu a:focus::after { color:var(--red); transform:translateX(2px); }

.gallery-nav-dropdown .nav-dropdown-menu {
  width:min(310px,calc(100vw - 32px));
  grid-template-columns:1fr;
}

@media (max-width:850px) {
  .nav-dropdown-menu { gap:4px; padding-right:7px; padding-left:7px; background:#f7f8fa; }
  .nav-dropdown.open .nav-dropdown-menu { max-height:650px; }
  .nav-links .nav-dropdown-menu a { min-height:43px; grid-template-columns:30px minmax(0,1fr) 13px; gap:9px; padding:5px 8px; }
  .nav-product-icon { width:30px; height:30px; border-radius:7px; }
  .nav-product-icon svg { width:19px; height:19px; }
  .nav-links .nav-dropdown-menu a::after { font-size:17px; }
}

/* The supplied slider artwork already contains its own content. */
.hero { min-height:0; aspect-ratio:2170 / 725; background:#300705; }
.slide:after { display:none; }
.slide.one { background-size:cover; background-position:center; }
.slide.two { background-size:108% auto; background-position:center; background-repeat:no-repeat; }
@media (max-width:520px) {
  .slider-controls, .slider-dots { display:none; }
}

/* Align the brand and the topbar message slightly further left. */
.topbar .container > span,
.nav > .brand { transform:translateX(-14px); }
@media (max-width:520px) {
  .topbar .container > span,
  .nav > .brand { transform:translateX(-6px); }
}

.copyright-meta { display:flex; align-items:center; gap:14px; }
.designer-credit { padding-left:14px; border-left:1px solid #ffffff1c; color:#aeb3b8; }
.designer-credit:hover { color:#fff; }
@media (max-width:600px) {
  .map-section { height:360px; }
  .map-card { display:none; }
}
@media (max-width:520px) {
  .copyright {
    min-height:104px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:7px;
    padding-top:18px;
    padding-bottom:18px;
    text-align:center;
  }
  .copyright span,
  .copyright span + span { margin:0; }
  .copyright-meta { flex-direction:column; gap:5px; }
  .designer-credit { padding-left:0; border-left:0; color:#fff; }
}

/* Prevent the collapsed mobile product submenu from reserving blank space. */
@media (max-width:850px) {
  .nav-links .nav-dropdown-menu,
  .nav-dropdown:hover .nav-dropdown-menu {
    min-height:0;
    margin:0;
    padding:0 7px;
  }
  .nav-dropdown.open .nav-dropdown-menu {
    margin:2px 0 5px;
    padding:8px 7px 9px;
  }
}

/* Premium six-product catalogue: three columns and two rows on desktop. */
.products {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:88px 0 100px;
  background:
    radial-gradient(circle at 94% 2%,#d7192010 0,transparent 27%),
    radial-gradient(circle at 4% 96%,#17191d08 0,transparent 24%),
    linear-gradient(180deg,#fbfcfd 0%,#f5f6f7 100%);
}
.products::before {
  content:"";
  position:absolute;
  z-index:-1;
  top:-120px;
  right:-105px;
  width:340px;
  height:340px;
  border:1px solid #d7192014;
  border-radius:50%;
  box-shadow:0 0 0 42px #d7192005,0 0 0 84px #d7192003;
}
.products > .container {
  position:relative;
  z-index:1;
  width:calc(100% - 116px);
  max-width:none;
}
.products .section-head { margin-bottom:48px; }
.products .section-head h2 {
  color:#121418;
  font-size:clamp(34px,3.2vw,44px);
  letter-spacing:-.025em;
}
.products .section-head h2:after {
  width:54px;
  height:4px;
  margin-top:16px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--red),#ff555b);
}
.product-viewport {
  overflow:visible;
  touch-action:auto;
  cursor:default;
  user-select:auto;
}
.product-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px 26px;
  overflow:visible;
  transform:none !important;
  transition:none;
}
.product {
  min-width:0;
  display:flex;
  flex:none;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #d7192029;
  border-radius:24px;
  background:linear-gradient(180deg,#f2f4f5 0%,#fff 52%);
  box-shadow:0 16px 40px #17191d0d;
  transition:border-color .28s ease,box-shadow .28s ease,transform .28s ease;
}
.product:hover {
  border-color:#d719205c;
  box-shadow:0 24px 58px #17191d1a;
  transform:translateY(-7px);
}
.product.product-focus {
  border-color:var(--red);
  box-shadow:0 0 0 3px #d7192024,0 24px 58px #17191d1a;
}
.product-visual {
  position:relative;
  width:100%;
  height:auto;
  aspect-ratio:16/10;
  overflow:hidden;
  border-radius:23px 23px 0 0;
  background:#edf0f1;
}
.product-visual::after {
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:36%;
  background:linear-gradient(180deg,transparent,#17191d1c);
  pointer-events:none;
}
.product-visual img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s cubic-bezier(.22,.61,.36,1);
}
.product:hover .product-visual img { transform:scale(1.045); }
.product-copy {
  position:relative;
  z-index:1;
  min-height:252px;
  flex:1;
  display:flex;
  flex-direction:column;
  margin-top:-30px;
  padding:28px 28px 24px;
  border-radius:24px 24px 0 0;
  background:#fff;
  text-align:left;
}
.product-copy::before {
  content:"";
  width:40px;
  height:4px;
  flex:none;
  margin-bottom:18px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--red),#ff555b);
  transition:width .28s ease;
}
.product:hover .product-copy::before { width:58px; }
.product h3 {
  min-height:56px;
  margin:0;
  color:#121418;
  font-family:"DM Sans",sans-serif;
  font-size:20px;
  font-weight:700;
  line-height:1.32;
  letter-spacing:-.025em;
  text-transform:none;
}
.product-copy p {
  min-height:46px;
  display:-webkit-box;
  margin:10px 0 23px;
  overflow:hidden;
  color:#626a72;
  font-size:13.5px;
  line-height:1.65;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.product-actions {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:auto;
  padding-top:20px;
  border-top:1px solid #e8eaec;
}
.product .btn {
  min-height:48px;
  display:inline-flex;
  justify-content:center;
  gap:8px;
  padding:11px 13px;
  border-radius:11px;
  font-size:10.5px;
  letter-spacing:.075em;
  text-align:center;
  box-shadow:none;
  transform:none;
}
.product .btn::before {
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  flex:none;
  font-size:16px;
  font-weight:600;
  line-height:1;
}
.product .product-know-more::before { content:"\2197"; }
.product .product-buy-now::before {
  content:"\f095";
  font-family:"Font Awesome 6 Free";
  font-size:14px;
  font-weight:900;
}
.product .btn:hover,
.product .btn:focus-visible {
  outline:none;
  transform:translateY(-2px);
}
.product .product-know-more {
  border-color:var(--red);
  background:var(--red);
  color:#fff;
  box-shadow:0 9px 20px #d7192021;
}
.product .product-know-more:hover {
  border-color:var(--red-dark);
  background:var(--red-dark);
  color:#fff;
  box-shadow:0 12px 24px #9b11182b;
}
.product .product-buy-now {
  border-color:#cfd3d7;
  background:#fff;
  color:#17191d;
}
.product .product-buy-now:hover {
  border-color:var(--red);
  background:#fff7f7;
  color:var(--red);
}

@media (max-width:960px) {
  .products > .container { width:calc(100% - 40px); }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
  .product-copy { padding-right:24px; padding-left:24px; }
}

@media (max-width:600px) {
  .products { padding:62px 0 70px; }
  .products > .container,
  .products .container { width:calc(100% - 28px); overflow:visible; }
  .products .section-head { margin-bottom:32px; }
  .products .section-head h2 { font-size:30px; }
  .product-grid { display:grid; grid-template-columns:1fr; gap:18px; }
  .product { width:100%; border-radius:19px; }
  .product-visual { height:auto; aspect-ratio:16/10; }
  .product-copy { min-height:0; margin-top:-24px; padding:23px 19px 19px; border-radius:19px 19px 0 0; }
  .product-copy::before { margin-bottom:15px; }
  .product h3 { min-height:0; font-size:18px; }
  .product-copy p { min-height:44px; margin:9px 0 18px; }
  .product-actions { gap:8px; padding-top:17px; }
  .product .btn { min-height:46px; padding:10px 8px; font-size:10px; }
}

/* Industries carousel: four cards visible on desktop with a fifth slide. */
.industry-carousel { position:relative; }
.industry-viewport { overflow:hidden; }
.industry-grid {
  display:flex;
  grid-template-columns:none;
  gap:24px;
  transition:transform .58s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}
.industry {
  flex:0 0 calc((100% - 72px) / 4);
  min-width:0;
}
.industry-next {
  position:absolute;
  z-index:2;
  top:50%;
  right:-21px;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:3px solid #fff;
  border-radius:50%;
  background:#17191d;
  color:#fff;
  box-shadow:0 9px 25px #17191d38;
  cursor:pointer;
  transform:translateY(-50%);
  transition:background .22s ease,box-shadow .22s ease,transform .22s ease;
}
.industry-next span {
  display:block;
  font-size:30px;
  line-height:1;
  transform:translateY(-1px);
  transition:transform .25s ease;
}
.industry-next:hover,
.industry-next:focus-visible {
  background:var(--red);
  box-shadow:0 12px 28px #d7192038;
  outline:none;
  transform:translateY(-50%) scale(1.06);
}
.industry-next.is-back span { transform:translateY(-1px) rotate(180deg); }

@media (max-width:900px) {
  .industry-grid { gap:14px; }
  .industry { flex-basis:calc((100% - 14px) / 2); }
  .industry-next { right:-18px; }
}

@media (max-width:520px) {
  .industries > .container { width:calc(100% - 40px); }
  .industry-grid { gap:12px; }
  .industry { flex-basis:100%; }
  .industry img { height:260px; }
  .industry h3 { height:50px; font-size:17px; }
  .industry-next { right:-17px; width:42px; height:42px; }
}

@media (prefers-reduced-motion:reduce) {
  .industry-grid { transition:none; }
}

/* Editorial masonry-style gallery. */
.gallery-section {
  position:relative;
  overflow:hidden;
  padding:82px 0 94px;
  background:
    radial-gradient(circle at 8% 5%,#d7192008 0,transparent 25%),
    linear-gradient(180deg,#fff 0%,#f8f8f7 100%);
}
.gallery-section::before {
  content:"";
  position:absolute;
  top:48px;
  right:-90px;
  width:260px;
  height:260px;
  border:1px solid #d7192014;
  border-radius:50%;
  box-shadow:0 0 0 38px #d7192004;
  pointer-events:none;
}
.gallery-section > .container {
  position:relative;
  z-index:1;
  width:min(1480px,calc(100% - 48px));
}
.gallery-heading { margin-bottom:40px; }
.gallery-heading h2 {
  color:#121418;
  font-size:clamp(34px,3.6vw,46px);
  letter-spacing:-.025em;
}
.gallery-heading h2:after {
  width:54px;
  height:4px;
  margin-top:16px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--red),#ff555b);
}
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:repeat(12,78px);
  grid-auto-flow:dense;
  gap:10px;
}
.gallery-item {
  position:relative;
  display:block;
  min-width:0;
  aspect-ratio:auto;
  overflow:hidden;
  border:1px solid #ffffffd9;
  border-radius:12px;
  background:#e9eaeb;
  box-shadow:0 8px 24px #17191d14;
  isolation:isolate;
  transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease;
}
.gallery-item:nth-child(1)  { grid-column:1/6;  grid-row:1/3; }
.gallery-item:nth-child(2)  { grid-column:6/9;  grid-row:1/3; }
.gallery-item:nth-child(3)  { grid-column:9/11; grid-row:1/3; }
.gallery-item:nth-child(4)  { grid-column:11/13; grid-row:1/4; }
.gallery-item:nth-child(5)  { grid-column:1/3;  grid-row:3/6; }
.gallery-item:nth-child(6)  { grid-column:3/6;  grid-row:3/6; }
.gallery-item:nth-child(7)  { grid-column:6/11; grid-row:3/5; }
.gallery-item:nth-child(8)  { grid-column:6/9;  grid-row:5/7; }
.gallery-item:nth-child(9)  { grid-column:9/11; grid-row:5/7; }
.gallery-item:nth-child(10) { grid-column:11/13; grid-row:4/7; }
.gallery-item:nth-child(11) { grid-column:1/4;  grid-row:6/9; }
.gallery-item:nth-child(12) { grid-column:4/6;  grid-row:6/9; }
.gallery-item:nth-child(13) { grid-column:6/10; grid-row:7/9; }
.gallery-item:nth-child(14) { grid-column:10/13; grid-row:7/13; }
.gallery-item:nth-child(15) { grid-column:1/4;  grid-row:9/13; }
.gallery-item:nth-child(16) { grid-column:4/7;  grid-row:9/13; }
.gallery-item:nth-child(17) { grid-column:7/10; grid-row:9/13; }
.gallery-item::before {
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  background:linear-gradient(180deg,transparent 55%,#0c0e12a6 100%);
  opacity:.18;
  transition:opacity .35s ease;
  pointer-events:none;
}
.gallery-item::after {
  content:"\2197";
  position:absolute;
  z-index:2;
  top:13px;
  right:13px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid #ffffff66;
  border-radius:50%;
  background:#17191dcc;
  color:#fff;
  font-size:17px;
  opacity:0;
  transform:translateY(7px);
  transition:opacity .28s ease,transform .28s ease,background .28s ease;
  pointer-events:none;
}
.gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s cubic-bezier(.22,.61,.36,1),filter .35s ease;
}
.gallery-item:hover {
  z-index:2;
  border-color:#ffffff;
  box-shadow:0 17px 38px #17191d28;
  transform:translateY(-3px);
}
.gallery-item:hover::before { opacity:.55; }
.gallery-item:hover::after { opacity:1; transform:translateY(0); }
.gallery-item:hover img { transform:scale(1.055); filter:saturate(1.05) contrast(1.02); }
.gallery-item:focus-visible {
  outline:3px solid var(--red);
  outline-offset:3px;
}
.gallery-item:focus-visible::after { opacity:1; transform:translateY(0); background:var(--red); }

@media (max-width:1100px) {
  .gallery-section > .container { width:calc(100% - 40px); }
  .gallery-grid {
    grid-template-columns:repeat(6,minmax(0,1fr));
    grid-template-rows:none;
    grid-auto-rows:105px;
  }
  .gallery-grid .gallery-item {
    grid-column:span 2 !important;
    grid-row:span 2 !important;
  }
  .gallery-grid .gallery-item:nth-child(5n+1) { grid-column:span 4 !important; }
  .gallery-grid .gallery-item:nth-child(7n+4) { grid-row:span 3 !important; }
}

@media (max-width:650px) {
  .gallery-section { padding:58px 0 64px; }
  .gallery-section > .container { width:calc(100% - 24px); }
  .gallery-heading { margin-bottom:28px; }
  .gallery-heading h2 { font-size:31px; }
  .gallery-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:125px;
    gap:8px;
  }
  .gallery-grid .gallery-item {
    grid-column:span 1 !important;
    grid-row:span 1 !important;
    border-radius:10px;
  }
  .gallery-grid .gallery-item:nth-child(5n+1) {
    grid-column:span 2 !important;
    grid-row:span 2 !important;
  }
  .gallery-grid .gallery-item:nth-child(4n) { grid-row:span 2 !important; }
  .gallery-item::after { top:9px; right:9px; width:34px; height:34px; font-size:15px; }
}

@media (prefers-reduced-motion:reduce) {
  .gallery-item,
  .gallery-item img,
  .gallery-item::after { transition:none; }
}

/* Accessible full-screen gallery preview. */
.gallery-lightbox {
  width:fit-content;
  max-width:calc(100vw - 48px);
  height:fit-content;
  max-height:calc(100vh - 48px);
  margin:auto;
  padding:0;
  overflow:visible;
  border:0;
  background:transparent;
  color:#fff;
}
.gallery-lightbox::backdrop {
  background:#07090ce8;
  backdrop-filter:blur(8px);
}
.gallery-lightbox[open] { animation:galleryLightboxIn .24s ease both; }
.gallery-lightbox__frame {
  position:relative;
  display:grid;
  place-items:center;
}
.gallery-lightbox__image {
  display:block;
  width:auto;
  height:auto;
  max-width:calc(100vw - 48px);
  max-height:calc(100vh - 48px);
  object-fit:contain;
  border:1px solid #ffffff2b;
  border-radius:14px;
  background:#111318;
  box-shadow:0 30px 90px #000a;
}
.gallery-lightbox__close {
  position:absolute;
  z-index:3;
  top:-18px;
  right:-18px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:3px solid #fff;
  border-radius:50%;
  background:var(--red);
  color:#fff;
  box-shadow:0 10px 28px #0007;
  cursor:pointer;
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.gallery-lightbox__close svg {
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
}
.gallery-lightbox__close:hover,
.gallery-lightbox__close:focus-visible {
  background:var(--red-dark);
  outline:none;
  box-shadow:0 13px 32px #0009;
  transform:rotate(5deg) scale(1.06);
}
@keyframes galleryLightboxIn {
  from { opacity:0; transform:scale(.97); }
  to { opacity:1; transform:scale(1); }
}

@media (max-width:650px) {
  .gallery-lightbox {
    max-width:calc(100vw - 20px);
    max-height:calc(100vh - 20px);
  }
  .gallery-lightbox__image {
    max-width:calc(100vw - 20px);
    max-height:calc(100vh - 20px);
    border-radius:10px;
  }
  .gallery-lightbox__close {
    top:8px;
    right:8px;
    width:42px;
    height:42px;
    border-width:2px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .gallery-lightbox[open] { animation:none; }
  .gallery-lightbox__close { transition:none; }
}
