*{box-sizing:border-box;}
html{
  overflow-y:scroll;
  scrollbar-gutter:stable;
}
body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  background:#b9b9b9;
  background-image:
    repeating-linear-gradient(115deg,
      rgba(255,255,255,0.35) 0px,
      rgba(255,255,255,0.35) 2px,
      rgba(120,120,120,0.25) 2px,
      rgba(120,120,120,0.25) 4px),
    linear-gradient(100deg, #d8d8d8 0%, #f5f5f5 28%, #9a9a9a 48%, #e8e8e8 62%, #b0b0b0 78%, #dedede 100%);
  color:#333;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.page{
  max-width:1191px;
  margin:0 auto;
  background:#ffffff;
}

header img{width:100%;height:auto;display:block;}

nav{
  background:#1c3a5e;
  border-top:1px solid #0f2338;
  border-bottom:1px solid #0f2338;
}
nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
}
nav li{border-right:1px solid #2c4e78;}
nav a{
  display:block;
  padding:8px 16px;
  font-size:0.82rem;
  font-weight:bold;
  color:#ffffff;
}
nav a:hover{background:#2c4e78;}
nav a.current{
  background:#ffffff;
  color:#111111;
}

.content{
  display:flex;
  align-items:stretch;
}
.col-main{
  flex:0 0 65%;
  padding:22px 24px 30px;
  background:#ffffff;
}
.col-side{
  flex:0 0 35%;
  padding:22px 24px 30px;
  background:#7f7f7f;
  color:#f1f1f1;
}

.main-photo{
  border:1px solid #999;
  margin-bottom:22px;
  margin-left:auto;
  margin-right:auto;
  position:relative;
  overflow:hidden;
  aspect-ratio:416/189;
  max-width:85%;
}
.main-photo img{
  width:100%;
  position:absolute;
  top:0;left:0;
  opacity:0;
  transition:opacity 1s ease-in-out;
}
.main-photo img.active{opacity:1;}

.testimonial-box{
  margin-bottom:26px;
  max-width:58.5%;
}
.testimonial-box img{width:100%;}

.video-row{
  display:flex;
  gap:16px;
  align-items:center;
}
.video-thumb{
  flex:0 0 200px;
  position:relative;
  border:1px solid #999;
}
.video-thumb img{width:100%;}
.play-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.play-overlay span{
  width:46px;height:46px;
  border-radius:50%;
  background:rgba(255,255,255,0.9);
  display:flex;align-items:center;justify-content:center;
}
.play-overlay svg{width:18px;height:18px;fill:#333;margin-left:2px;}
.video-caption{
  font-size:0.86rem;
  color:#3a6ea5;
  line-height:1.5;
}

.col-side h2{
  font-size:1.05rem;
  font-weight:bold;
  color:#ffffff;
  margin:0 0 14px;
  padding-bottom:10px;
  border-bottom:1px solid #999;
}
.col-side p{
  font-size:0.82rem;
  line-height:1.6;
  color:#e6e6e6;
  margin:0 0 14px;
}
.col-side .info-label{
  font-weight:bold;
  color:#ffffff;
  margin-bottom:6px;
}
.col-side .address{
  font-size:0.82rem;
  line-height:1.65;
  color:#e6e6e6;
  margin:0 0 22px;
}
.col-side .address a{color:#e6e6e6;}

.thumb-strip{
  border:1px solid #666;
}
.thumb-strip img{width:100%;}

footer{
  background:#ffffff;
  border-top:1px solid #ddd;
  padding:14px 24px;
  font-size:0.78rem;
  color:#555;
}

/* ---------- Products page ---------- */
.page-heading{
  font-size:1.5rem;
  font-weight:bold;
  color:#1c1c1c;
  margin:0 0 18px;
}
.product-copy{margin:0 0 16px;}
.product-copy p{
  font-size:0.86rem;
  line-height:1.65;
  color:#555;
  margin:0 0 16px;
}
.product-copy dt{
  font-weight:bold;
  color:#1c3a5e;
  text-decoration:underline;
  font-size:0.86rem;
  margin-bottom:2px;
}
.product-copy dd{
  margin:0 0 16px;
  font-size:0.86rem;
  line-height:1.65;
  color:#555;
}
.section-divider{
  border:0;
  border-top:1px solid #ccc;
  margin:28px 0 22px;
}
.sub-heading{
  font-size:1.2rem;
  font-weight:bold;
  color:#1c1c1c;
  margin:0 0 16px;
}
.equip-row{
  display:flex;
  gap:20px;
  align-items:flex-start;
}
.equip-row img{
  flex:0 0 220px;
  border:1px solid #999;
}
.equip-row p{
  font-size:0.86rem;
  line-height:1.65;
  color:#555;
  margin:0;
}

.feature-row{
  display:flex;
  gap:24px;
  align-items:flex-start;
  margin-bottom:28px;
}
.feature-row img{
  flex:0 0 220px;
  border:1px solid #999;
}
.feature-row ul{
  margin:0;
  padding-left:18px;
  font-size:0.82rem;
  line-height:1.55;
  color:#555;
}
.feature-row li{margin-bottom:6px;}

.more-features-copy p{
  font-size:0.86rem;
  line-height:1.65;
  color:#555;
  margin:0 0 16px;
}
.diagram-row{
  display:flex;
  gap:20px;
  align-items:flex-start;
  margin-bottom:10px;
}
.diagram-row img{
  border:1px solid #999;
}
.diagram-row img.paper-path{flex:0 0 200px;}
.diagram-row img.module-diagram{flex:0 0 320px;}

@media (max-width:820px){
  .content{flex-direction:column;}
  .col-main, .col-side{flex:1 1 100%;}
  nav a{padding:8px 10px;font-size:0.74rem;}
  .video-row{flex-direction:column;align-items:flex-start;}
  .video-thumb{flex:0 0 auto;width:100%;max-width:280px;}
  .equip-row{flex-direction:column;}
  .equip-row img{flex:0 0 auto;width:100%;max-width:280px;}
  .feature-row{flex-direction:column;}
  .feature-row img{flex:0 0 auto;width:100%;max-width:280px;}
  .diagram-row{flex-direction:column;}
  .diagram-row img{width:100%;max-width:320px;}
  .video-list-row{flex-direction:column;}
  .video-list-row .video-thumb{width:100%;max-width:280px;}
  .brochure-row{flex-direction:column;}
}

/* ---------- Video list ---------- */
.video-list-row{
  display:flex;
  gap:20px;
  align-items:flex-start;
  margin-bottom:26px;
}
.video-list-row .video-thumb{
  flex:0 0 220px;
}
.video-list-copy h3{
  font-size:0.98rem;
  font-weight:bold;
  color:#1c1c1c;
  margin:0 0 8px;
}
.video-list-copy p{
  font-size:0.84rem;
  line-height:1.6;
  color:#555;
  margin:0;
}

/* ---------- Brochure download ---------- */
.brochure-row{
  display:flex;
  gap:22px;
  align-items:center;
}
.brochure-row a.cover-link{
  flex:0 0 160px;
  border:1px solid #999;
}
.brochure-row a.cover-link img{width:100%;}
.brochure-copy h3{
  font-size:0.98rem;
  font-weight:bold;
  color:#1c1c1c;
  margin:0 0 8px;
}
.brochure-copy p{
  font-size:0.84rem;
  color:#555;
  margin:0;
}

/* ---------- Gallery ---------- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:8px;
}
.gallery-grid button{
  padding:0;
  border:1px solid #999;
  background:none;
  cursor:pointer;
  overflow:hidden;
  display:block;
}
.gallery-grid img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform 0.2s ease;
}
.gallery-grid button:hover img{transform:scale(1.08);}

.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.88);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:999;
  padding:40px 20px;
}
.lightbox.open{display:flex;}
.lightbox img{
  max-width:100%;
  max-height:82vh;
  border:2px solid #fff;
}
.lightbox-close{
  position:absolute;
  top:18px;right:24px;
  background:none;
  border:0;
  color:#fff;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  padding:6px 10px;
}
.lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(255,255,255,0.15);
  border:0;
  color:#fff;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  padding:14px 18px;
  border-radius:4px;
}
.lightbox-nav:hover{background:rgba(255,255,255,0.3);}
.lightbox-prev{left:16px;}
.lightbox-next{right:16px;}
.lightbox-count{
  position:absolute;
  bottom:16px;
  left:50%;
  transform:translateX(-50%);
  color:#ddd;
  font-size:0.82rem;
}

@media (max-width:820px){
  .gallery-grid{grid-template-columns:repeat(3, 1fr);}
  .lightbox-nav{padding:10px 14px;font-size:1.5rem;}
  .folder-feature-row{flex-direction:column;}
  .folder-feature-row .folder-photos{flex:0 0 auto;width:100%;max-width:280px;}
  .folder-diagram-row{flex-direction:column;}
  .folder-diagram-row img{width:100%;}
  .folder-photo-grid{grid-template-columns:repeat(3, 1fr);}
}
@media (max-width:560px){
  .gallery-grid{grid-template-columns:repeat(2, 1fr);}
  .folder-photo-grid{grid-template-columns:repeat(2, 1fr);}
}

/* ---------- Folders page ---------- */
.folder-feature-row{
  display:flex;
  gap:24px;
  align-items:flex-start;
  margin-bottom:10px;
}
.folder-photos{
  flex:0 0 190px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.folder-photos img{
  border:1px solid #999;
  width:100%;
}
.folder-feature-row p{
  font-size:0.86rem;
  line-height:1.65;
  color:#555;
  margin:0 0 16px;
}

.folder-diagram-row{
  margin-bottom:6px;
}
.folder-diagram-row img{
  border:1px solid #999;
  max-width:100%;
}

.folder-photo-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:0;
  max-width:520px;
}
.folder-photo-grid img{width:100%;display:block;}

/* ---------- Our Team page ---------- */
.team-member{
  margin-bottom:26px;
  padding-bottom:22px;
  border-bottom:1px solid #ccc;
}
.team-member:last-of-type{border-bottom:0;}
.team-member h2{
  font-size:1.15rem;
  font-weight:bold;
  color:#1c1c1c;
  margin:0 0 4px;
}
.team-member .title{
  font-size:0.86rem;
  color:#888;
  margin:0 0 12px;
}
.team-member p{
  font-size:0.86rem;
  line-height:1.65;
  color:#555;
  margin:0;
}
.team-member a{
  color:#3a6ea5;
  text-decoration:underline;
}

/* ---------- Contact Us page ---------- */
.contact-row{
  display:flex;
  gap:30px;
  align-items:flex-start;
  margin-bottom:26px;
}
.contact-details{
  flex:0 0 260px;
  font-size:0.86rem;
  line-height:1.6;
  color:#555;
}
.contact-details h2{
  font-size:1rem;
  font-weight:bold;
  color:#1c1c1c;
  margin:0 0 2px;
}
.contact-details .addr-block{margin-bottom:16px;}
.contact-details .label-strong{
  font-weight:bold;
  color:#1c1c1c;
  margin-top:14px;
  margin-bottom:2px;
}
.contact-details a{color:#3a6ea5;text-decoration:none;}
.contact-details a:hover{text-decoration:underline;}

.map-embed{
  flex:1;
  min-width:220px;
  max-width:400px;
}
.map-embed iframe{
  width:100%;
  height:280px;
  border:1px solid #999;
  display:block;
}
.map-embed a.open-maps{
  display:inline-block;
  margin-bottom:8px;
  font-size:0.86rem;
  color:#3a6ea5;
}

.partners-region{
  font-size:0.82rem;
  font-weight:bold;
  font-style:italic;
  color:#3a6ea5;
  margin:20px 0 8px;
  text-transform:uppercase;
}
.partners-region:first-of-type{margin-top:0;}
.partner-company{
  font-size:0.88rem;
  font-weight:bold;
  color:#1c1c1c;
  margin:0 0 4px;
}
.partner-contact{
  font-size:0.84rem;
  color:#555;
  line-height:1.6;
  margin:0 0 4px;
}
.partner-contact a{color:#3a6ea5;text-decoration:none;}
.partner-contact a:hover{text-decoration:underline;}
.partner-sub{
  font-size:0.82rem;
  color:#777;
  line-height:1.6;
  margin:0 0 14px;
  padding-left:14px;
}

@media (max-width:820px){
  .contact-row{flex-direction:column;}
  .contact-details{flex:0 0 auto;width:100%;}
  .map-embed{max-width:100%;}
}

/* ---------- Parts & Manuals page ---------- */
.parts-gate h1{
  font-size:1.5rem;
  font-weight:bold;
  color:#1c1c1c;
  text-align:center;
  line-height:1.3;
  margin:10px 0 20px;
}
.parts-gate .gate-link{
  display:block;
  text-align:center;
  font-size:1rem;
  color:#3a6ea5;
  text-decoration:underline;
  margin-bottom:22px;
}
.parts-gate .gate-link:hover{color:#1c3a5e;}
.parts-help{
  font-size:0.88rem;
  line-height:1.7;
  color:#333;
}
.parts-help a{color:#3a6ea5;text-decoration:underline;}

.manual-links{
  list-style:none;
  margin:0 0 22px;
  padding:0;
}
.manual-links li{margin-bottom:14px;}
.manual-links a{
  font-size:1.3rem;
  font-weight:600;
  text-decoration:underline;
}
.manual-links a.link-red{color:#c0392b;}
.manual-links a.link-green{color:#2e7d32;}
.manual-links a.link-black{color:#1a1a1a;}
.manual-links a.link-orange{color:#d98a2b;}

.denied-box{
  text-align:center;
  padding:60px 20px;
}
.denied-box h1{
  font-size:1.6rem;
  font-weight:bold;
  color:#1c1c1c;
  margin:0 0 10px;
}
.denied-box p{
  font-size:0.92rem;
  color:#555;
  line-height:1.6;
  margin:0 0 20px;
}
.denied-box a.retry-link{
  display:inline-block;
  color:#3a6ea5;
  text-decoration:underline;
  font-size:0.95rem;
}

/* ---------- Parts & Manuals sub-pages ---------- */
.subpage-title{
  font-size:1.5rem;
  font-weight:800;
  letter-spacing:0.02em;
  color:#c0392b;
  text-transform:uppercase;
  margin:0 0 18px;
}
.subpage-intro{
  font-size:1rem;
  color:#1a1a1a;
  line-height:1.5;
  margin:0 0 22px;
  max-width:640px;
}
.category-heading{
  font-size:1.15rem;
  font-weight:800;
  color:#c0392b;
  text-transform:uppercase;
  letter-spacing:0.01em;
  margin:22px 0 10px;
}
.category-heading:first-of-type{margin-top:0;}
.sub-link-list{
  list-style:none;
  margin:0 0 4px;
  padding:0;
}
.sub-link-list li{margin-bottom:12px;}
.sub-link-list a{
  font-size:0.95rem;
  color:#3a6ea5;
  text-decoration:underline;
}
.sub-link-list a:hover{color:#1c3a5e;}

.spare-parts-layout{
  display:flex;
  gap:36px;
  align-items:flex-start;
}
.spare-parts-cats{flex:0 0 260px;}
.photo-box{
  flex:1;
  max-width:400px;
  border:1px solid #666;
}
.photo-box-header{
  background:#5c5c5c;
  color:#fff;
  font-weight:800;
  font-size:1.1rem;
  text-transform:uppercase;
  padding:12px 16px;
}
.photo-box a{
  display:block;
  background:#7f7f7f;
  color:#fff;
  text-decoration:none;
  font-size:0.88rem;
  font-weight:600;
  letter-spacing:0.02em;
  padding:11px 16px;
  border-top:1px solid #8f8f8f;
}
.photo-box a:hover{background:#6b6b6b;}

@media (max-width:820px){
  .spare-parts-layout{flex-direction:column;}
  .spare-parts-cats, .photo-box{max-width:100%;}
}

a:focus-visible, .video-thumb:focus-visible{
  outline:2px solid #3a6ea5;
  outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  a, .video-thumb span{transition:none !important;}
}
