/* ================================
   APEX RACING — main stylesheet
   Red / White / Black motorsport
   ================================ */

:root{
  --red:#e10600;
  --red-dark:#a30400;
  --black:#0a0a0a;
  --graphite:#1a1a1a;
  --smoke:#242424;
  --white:#ffffff;
  --off:#f2f2f2;
  --muted:#8a8a8a;
  --font-display:"Barlow Condensed", "Arial Narrow", sans-serif;
  --font-mono:"JetBrains Mono", monospace;
  --font-race:"Racing Sans One", sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-display);
  background:var(--white);
  color:var(--black);
  overflow-x:hidden;
  line-height:1.5;
  font-weight:400;
  font-size:17px;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* ===== NAV ===== */
.nav{
  position:fixed;top:0;left:0;right:0;
  z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  min-height:90px;
  padding:10px 40px;
  background:rgba(10,10,10,0.85);
  backdrop-filter:blur(12px);
  border-bottom:1px solid #2a2a2a;
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  color:var(--white);
}
.logo-img{
  width:auto;
  height:70px;
  display:block;
  margin:0;
  object-fit:contain;
}
.logo-mark{
  color:var(--red);
  font-size:26px;
  line-height:1;
  transform:translateY(-2px);
}
.logo-text{
  font-weight:900;
  font-size:22px;
  letter-spacing:1px;
  color:var(--white);
}
.logo-text span{color:var(--red);}

.nav-links{display:flex;align-items:center;gap:32px;}
.nav-links a{
  color:var(--white);
  font-weight:600;
  font-size:15px;
  letter-spacing:2px;
  text-transform:uppercase;
  position:relative;
  padding:8px 0;
  transition:color .2s;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:0;height:2px;
  background:var(--red);
  transition:width .3s;
}
.nav-links a:hover::after,
.nav-links a.active::after{width:100%;}
.nav-links a.active{color:var(--red);}

/* Nav right wrapper (lang + hamburger) */
.nav-right{
  display:flex;
  align-items:center;
  gap:6px;
}

/* Hamburger menu (mobile) */
.hamburger{
  display:none;
  background:none;
  border:none;
  color:var(--white);
  cursor:pointer;
  padding:8px 6px;
  margin-left:4px;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  width:38px;
  height:38px;
  transition:color .2s;
}
.hamburger:hover{color:var(--red);}
.hamburger-bar{
  display:block;
  width:22px;
  height:2px;
  background:var(--white);
  border-radius:2px;
  transition:transform .3s ease, opacity .3s ease, background .2s;
}
.hamburger:hover .hamburger-bar{background:var(--red);}
.hamburger.active .hamburger-bar:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.hamburger.active .hamburger-bar:nth-child(2){opacity:0;}
.hamburger.active .hamburger-bar:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* Carousel nav (only shown on mobile via media query) */
.carousel-nav{display:none;}

.hero-sub-page {
  padding: 90px;
  padding-top: 130px;
  min-height: 100vh;
}

.lang-toggle{display:flex;align-items:center;gap:6px;color:#666;}
.lang-btn{
  background:none;border:none;
  color:#888;
  font-family:var(--font-mono);
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  padding:4px 6px;
  transition:color .2s;
}
.lang-btn.active{color:var(--red);}
.lang-btn:hover{color:var(--white);}

/* ===== HERO ===== */
.hero{
  position:relative;
  min-height:100vh;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:flex-end;
  padding:120px 60px 100px;
  overflow:hidden;
  color:var(--white);
}
.hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(115deg, rgba(10,10,10,0.85) 0%, rgba(10,10,10,0.35) 55%, rgba(225,6,0,0.15) 100%),
    linear-gradient(to top, rgba(10,10,10,0.9), transparent 60%);
}
.hero-stripes{
  position:absolute;
  top:0;right:0;
  height:100%;
  width:180px;
  display:flex;
  pointer-events:none;
  transform:skewX(-15deg) translateX(60px);
}
.hero-stripes span{
  flex:1;
  margin-right:6px;
  background:var(--red);
  opacity:0.85;
}
.hero-stripes span:nth-child(2){background:var(--white);opacity:0.9;}
.hero-stripes span:nth-child(3){background:var(--black);opacity:0.7;}

.hero-content{
  position:relative;z-index:2;
  max-width:900px;
}
.hero-meta{
  display:flex;gap:14px;margin-bottom:24px;flex-wrap:wrap;
}
.tag{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:3px;
  padding:6px 12px;
  border:1px solid var(--red);
  color:var(--white);
  background:rgba(225,6,0,0.15);
}
.hero-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(3.5rem, 10vw, 8.5rem);
  line-height:0.9;
  letter-spacing:-2px;
  text-transform:uppercase;
}
.hero-title .accent{
  color:var(--red);
  font-style:italic;
  display:inline-block;
  transform:translateX(20px);
}
.hero-sub{
  margin-top:20px;
  font-size:1.3rem;
  max-width:520px;
  color:#e0e0e0;
  font-weight:400;
}
.hero-number{
  position:absolute;
  right:60px;bottom:40px;
  font-family:var(--font-race);
  font-size:14rem;
  color:transparent;
  -webkit-text-stroke:2px rgba(255,255,255,0.15);
  line-height:1;
  z-index:1;
  pointer-events:none;
}

.btn-primary{
  display:inline-block;
  margin-top:32px;
  padding:16px 32px;
  background:var(--red);
  color:var(--white);
  font-family:var(--font-display);
  font-weight:800;
  font-size:15px;
  letter-spacing:3px;
  text-transform:uppercase;
  border:none;
  cursor:pointer;
  clip-path:polygon(0 0, 100% 0, calc(100% - 15px) 100%, 0 100%);
  transition:background .2s, transform .2s;
}
.btn-primary:hover{
  background:var(--red-dark);
  transform:translateX(4px);
}

/* ===== SECTION HEAD ===== */
.section-head{
  display:flex;align-items:baseline;gap:20px;
  margin-bottom:50px;
  border-bottom:1px solid #ddd;
  padding-bottom:20px;
}
.section-head.light{border-color:#333;}
.section-head.light h2{color:var(--white);}
.section-head.light .section-num{color:var(--red);}
.section-num{
  font-family:var(--font-mono);
  color:var(--red);
  font-size:14px;
  font-weight:700;
  letter-spacing:2px;
}
.section-head h2{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(2rem,5vw,3.5rem);
  letter-spacing:-1px;
  text-transform:uppercase;
}

/* ===== ABOUT SECTION ===== */
.about{
  padding:120px 60px;
  background:var(--white);
}
.about-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:60px;
  align-items:start;
}
.about-text .lead{
  font-size:1.6rem;
  font-weight:600;
  line-height:1.3;
  margin-bottom:24px;
  color:var(--black);
}
.about-text p{
  color:#333;
  margin-bottom:20px;
  font-size:1.05rem;
}


.stats{
  display:flex;gap:40px;margin-top:40px;
  border-top:2px solid var(--black);
  padding-top:30px;
}
.stat{display:flex;flex-direction:column;}
.stat .num{
  font-family:var(--font-race);
  font-size:3.5rem;
  color:var(--red);
  line-height:1;
}
.stat .lbl{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#555;
  margin-top:8px;
}

.about-visual{
  position:relative;
  aspect-ratio:3/4;
  background:
    linear-gradient(135deg, var(--black) 0%, var(--graphite) 100%);
  padding:30px;
  color:var(--white);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 30px), calc(100% - 30px) 100%, 0 100%);
}


.visual-tag{
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--white);
  letter-spacing:3px;
  margin-bottom:8px;
}
.visual-name{
  font-family:var(--font-display);
  font-weight:900;
  font-size:2.4rem;
  line-height:1;
  text-transform:uppercase;
}
.visual-role{
  margin-top:6px;
  color:#aaa;
  font-size:0.95rem;
}

/* ===== REVIEWS ===== */
.reviews{
  padding:120px 60px;
  background:var(--black);
  color:var(--white);
  position:relative;
  overflow:hidden;
}
.reviews::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:6px;
  background:repeating-linear-gradient(
    90deg,
    var(--white) 0 30px,
    var(--black) 30px 60px
  );
}
.carousel{
  display:flex;align-items:center;gap:24px;
  max-width:1000px;
  margin:0 auto;
  position:relative;
}
.car-btn{
  background:transparent;
  border:2px solid var(--red);
  color:var(--red);
  width:52px;height:52px;
  font-size:14px;
  cursor:pointer;
  flex-shrink:0;
  transition:all .2s;
}
.car-btn:hover{background:var(--red);color:var(--white);}
.carousel-track{
  flex:1;
  position:relative;
  min-height:280px;
}
.review-card{
  position:absolute;
  inset:0;
  padding:40px;
  background:var(--graphite);
  border-left:4px solid var(--red);
  opacity:0;
  visibility:hidden;
  transform:translateX(30px);
  transition:opacity .5s ease, transform .5s cubic-bezier(.2,.7,.2,1), visibility 0s linear .5s;
  pointer-events:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.review-card.active{
  opacity:1;
  visibility:visible;
  transform:translateX(0);
  pointer-events:auto;
  transition:opacity .5s ease, transform .5s cubic-bezier(.2,.7,.2,1), visibility 0s linear 0s;
}
.quote-mark{
  font-family:var(--font-race);
  color:var(--red);
  font-size:5rem;
  line-height:0.6;
  margin-bottom:14px;
}
.review-card p{
  font-size:1.35rem;
  font-weight:400;
  line-height:1.5;
  margin-bottom:24px;
  color:#eee;
}
.review-author strong{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.1rem;
  letter-spacing:2px;
  display:block;
}
.review-author span{
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--muted);
  letter-spacing:2px;
  text-transform:uppercase;
}
.carousel-dots{
  display:flex;justify-content:center;gap:10px;margin-top:30px;
}
.carousel-dots button{
  width:30px;height:3px;
  background:#444;
  border:none;
  cursor:pointer;
  transition:background .2s;
}
.carousel-dots button.active{background:var(--red);}

/* ===== SERVICES ===== */
.services-intro{
  padding:120px 60px 60px;
  max-width:1100px;
  margin:0 auto;
}
.services-intro .lead{
  font-size:1.5rem;
  font-weight:600;
  margin-bottom:20px;
  line-height:1.4;
}
.services-intro p{
  font-size:1.05rem;
  color:#333;
  margin-bottom:18px;
}
.services-list{
  padding:40px 60px 120px;
  max-width:1200px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:80px;
}
.service-block{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:40px;
  align-items:start;
  padding-top:40px;
  border-top:3px solid var(--black);
}
.service-block.reverse{
  border-top-color:var(--red);
}
.service-num{
  font-family:var(--font-race);
  font-size:8rem;
  color:transparent;
  -webkit-text-stroke:2px var(--red);
  line-height:0.9;
}
.service-body h3{
  font-family:var(--font-display);
  font-weight:900;
  font-size:2.4rem;
  letter-spacing:-0.5px;
  text-transform:uppercase;
  margin-bottom:16px;
}
.service-body p{
  color:#333;
  font-size:1.1rem;
  margin-bottom:20px;
}
.service-features{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px 30px;
  margin:20px 0 30px;
}
.service-features li{
  font-family:var(--font-mono);
  font-size:13px;
  padding:8px 0 8px 20px;
  border-bottom:1px dashed #ccc;
  position:relative;
}
.service-features li::before{
  content:"▸";
  position:absolute;
  left:0;
  color:var(--red);
  font-weight:700;
}
.contact-btn{margin-top:10px;}
.contact-info{
  display:none;
  margin-top:20px;
  padding:20px;
  background:var(--black);
  color:var(--white);
  gap:20px;
  flex-wrap:wrap;
  border-left:4px solid var(--red);
  font-family:var(--font-mono);
  font-size:14px;
  letter-spacing:1px;
}
.contact-info.show{display:flex;}
.contact-info span:first-child{
  font-family:var(--font-display);
  font-weight:800;
  font-size:16px;
  letter-spacing:2px;
  color:var(--red);
}

/* ===== TYRES ===== */
.tyres-section{
  padding:120px 60px;
  max-width:1200px;
  margin:0 auto;
}
.tyre-provider{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:60px;
  align-items:center;
  padding-bottom:60px;
  border-bottom:3px solid var(--black);
  margin-bottom:60px;
}
.provider-logo{
  padding:30px;
  background:var(--white);
  border:2px solid var(--black);
}
.provider-logo svg{width:100%;height:auto;}
.provider-text h2{
  font-family:var(--font-display);
  font-weight:900;
  font-size:2rem;
  letter-spacing:-0.5px;
  text-transform:uppercase;
  margin-bottom:14px;
}
.provider-text p{
  color:#333;
  font-size:1.05rem;
}

.pricelist{margin-bottom:60px;}
.pricelist-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:20px;
  padding-bottom:14px;
  border-bottom:2px solid var(--red);
}
.pricelist-head h3{
  font-family:var(--font-display);
  font-weight:900;
  font-size:2.4rem;
  letter-spacing:-0.5px;
  text-transform:uppercase;
}
.mono{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:2px;
  color:var(--muted);
}

.tyres-table{
  width:100%;
  border-collapse:collapse;
  font-size:15px;
}
.tyres-table thead th{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:2px;
  text-align:left;
  padding:14px 12px;
  background:var(--black);
  color:var(--white);
  border-right:1px solid #333;
}
.tyres-table thead th:last-child{border-right:none;}
.tyres-table tbody tr{
  border-bottom:1px solid #eee;
  transition:background .15s;
}
.tyres-table tbody tr:hover{background:#fff5f5;}
.tyres-table tbody td{
  padding:16px 12px;
  vertical-align:middle;
}
.tyres-table tbody td strong{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.1rem;
  letter-spacing:1px;
}
.tyres-table .mono,
.tyres-table td.mono{
  font-family:var(--font-mono);
  font-size:13px;
}
.price{
  font-family:var(--font-mono);
  font-weight:700;
  color:#333;
}
.price.total{
  color:var(--red);
  font-size:1.05rem;
}
.vat-note{
  margin-top:14px;
  text-align:right;
}

.tyres-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center;
  padding-top:40px;
  border-top:1px solid #ddd;
}
.seller-card{
  background:var(--black);
  color:var(--white);
  padding:30px;
  position:relative;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%);
  border-left:4px solid var(--red);
}
.seller-tag{
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--red);
  letter-spacing:3px;
  margin-bottom:10px;
}
.seller-name{
  font-family:var(--font-display);
  font-weight:900;
  font-size:2rem;
  letter-spacing:-0.5px;
  line-height:1;
}
.seller-role{
  color:#aaa;
  margin:6px 0 18px;
}
.seller-contact{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-family:var(--font-mono);
  font-size:14px;
}
.seller-contact a{
  color:var(--white);
  transition:color .2s;
}
.seller-contact a:hover{color:var(--red);}



/* ===== FOOTER ===== */
.footer{
  background:var(--black);
  color:var(--white);
  padding:0 0 30px;
  position:relative;
}
.footer-stripe{
  height:8px;
  background:repeating-linear-gradient(
    -45deg,
    var(--red) 0 20px,
    var(--white) 20px 40px,
    var(--black) 40px 60px
  );
  opacity:0.9;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(4,1fr);
  gap:40px;
  padding:60px;
}
.footer-logo {
  display: flex;
  align-items: center;
}

.footer-logo-img {
  width: 260px;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}
.footer-tag{
  margin-top:10px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:2px;
  color:#888;
  text-transform:uppercase;
}
.footer-col h4{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:3px;
  color:var(--red);
  margin-bottom:14px;
}
.footer-col p{
  color:#ccc;
  font-size:14px;
  line-height:1.7;
}
.socials{display:flex;flex-direction:column;gap:8px;}
.socials a{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:2px;
  color:#ccc;
  transition:color .2s;
}
.socials a:hover{color:var(--red);}
.footer-bottom{
  padding:20px 60px 0;
  border-top:1px solid #222;
  display:flex;
  justify-content:space-between;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:2px;
  color:#666;
}

/* ===== RESPONSIVE ===== */

/* Tablet */
@media (max-width:960px){
  .nav{min-height:76px;padding:8px 20px;flex-wrap:wrap;gap:12px;}
  .nav-links{order:3;width:100%;justify-content:space-between;gap:14px;}
  .nav-right{margin-left:auto;}
  .nav-links a{font-size:13px;letter-spacing:1px;}
  .hero,.about,.reviews,.services-intro,.services-list,.tyres-section,.history-section{
    padding-left:24px;padding-right:24px;
  }
    .hero-sub-page {
    margin-top: 125px;
  }
  .hero-number{font-size:8rem;right:20px;}
  .about-grid,.tyre-provider,.tyres-actions{
    grid-template-columns:1fr;gap:40px;
  }
  .service-block{grid-template-columns:1fr;gap:16px;}
  .service-num{font-size:5rem;}
  .service-features{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;padding:40px 24px;gap:30px;}
  .footer-bottom{padding:20px 24px 0;flex-direction:column;gap:8px;}
  .stats{flex-wrap:wrap;gap:20px;}
  .tl-item{grid-template-columns:80px 1fr;}
  .tyres-table{font-size:13px;}
  .tyres-table thead th, .tyres-table tbody td{padding:10px 6px;}
  .carousel{flex-direction:row;}
  .car-btn{align-self:center;}
  .review-card p{font-size:1.1rem;}
  .hero-stripes{width:100px;}
}

@media (max-width:960px) {
  .logo-img {
    height: 60px;
    margin: 0;
  }

  .footer-logo-img {
    width: 220px;
  }
}

/* Mobile — hamburger menu & fix carousel */
@media (max-width:700px){
  .nav{min-height:70px;padding:8px 16px;}

  /* Hide inline nav-links, show hamburger */
  .hamburger{display:inline-flex;align-items:center;justify-content:center;}

  .nav-links{
    position:fixed;
    top:0;right:0;
    height:100vh;
    width:min(80%, 300px);
    background:rgba(10,10,10,0.97);
    backdrop-filter:blur(12px);
    border-left:1px solid #2a2a2a;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    padding:80px 28px 28px;
    gap:0;
    transform:translateX(100%);
    transition:transform .35s cubic-bezier(.2,.7,.2,1);
    z-index:99;
    order:initial;
    width:min(80%, 300px);
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{
    width:100%;
    font-size:16px;
    letter-spacing:2px;
    padding:18px 0;
    border-bottom:1px solid #222;
  }
  .nav-links a::after{display:none;}
  .nav-links a.active{color:var(--red);}

  /* Body lock when menu open */
  body.menu-open{overflow:hidden;}

  /* Carousel: stack vertically with prev/next UNDER the card */
  .carousel{
    flex-direction:column;
    gap:18px;
  }
  .carousel-track{
    width:100%;
    min-height:340px;
  }
  .review-card{
    padding:28px 22px;
  }
  .review-card p{font-size:1.05rem;line-height:1.45;}
  .quote-mark{font-size:3.5rem;margin-bottom:10px;}
  .car-btn{
    width:46px;height:46px;
    font-size:13px;
  }
  .carousel-nav{
    display:flex;
    gap:14px;
    justify-content:center;
    align-items:center;
    margin-top:6px;
  }
  .carousel-dots{margin-top:18px;}

  /* Hero fixes */
  .hero{padding:100px 20px 60px;}
  .hero-title .accent{transform:translateX(8px);}
  .hero-sub-page{padding:60px 20px;min-height:auto;margin-top:65px;}

  /* Sections */
  .about{padding:80px 20px;}
  .about-text .lead{font-size:1.25rem;}
  .about-visual{aspect-ratio:4/5;}
  .reviews{padding:80px 20px;}

  /* Services */
  .services-intro{padding:90px 20px 40px;}
  .services-list{padding:20px 20px 80px;gap:50px;}
  .service-num{font-size:3.5rem;}
  .service-body h3{font-size:1.7rem;}

  /* Tyres */
  .tyres-section{padding:90px 20px;}
  .pricelist-head{flex-direction:column;align-items:flex-start;gap:6px;}
  .pricelist-head h3{font-size:1.7rem;}

  /* Footer */
  .footer-grid{padding:40px 20px;}
}

/* Very small screens */
@media (max-width:420px){
  .logo-img{height:48px; margin:0;}
  .footer-logo-img{width:180px;}
  .hero-title{letter-spacing:-1px;}
  .review-card{padding:22px 18px;}
  .review-card p{font-size:0.98rem;}
  .footer-grid{grid-template-columns:1fr;}
}