/*
Theme Name: LETO Roofing Theme
Text Domain: leto-roofing
Version: 1.0.0
*/

:root{
  --color-navy:#014472;
  --color-navy-2:#094f8a;
  --color-amber:#ffb03e;
  --color-amber-hover:#ffb03e;
  --color-bg:#fbf9f9;
  --color-surface:#ffffff;
  --color-surface-alt:#fbf9f9;
  --color-border:#e6e2db;
  --color-text:#014472;
  --color-text-muted:#5f6b78;
  --color-text-soft:#66717d;
  --color-success:#ffb03e;
  --font-display:Inter, Arial, sans-serif;
  --font-body:Inter, Arial, sans-serif;
  --shadow-sm:0 6px 20px rgba(18,36,53,.06);
  --radius-sm:2px;
  --radius-md:4px;
  --radius-lg:6px;
  --radius-xl:8px;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.25rem;
  --space-6:1.5rem;
  --space-8:2rem;
  --space-10:2.5rem;
  --space-12:3rem;
  --space-16:4rem;
  --text-xs:12px;
  --text-lg:24px;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

html,
body{
  margin:0;
  padding:0;
}

body{
  font-family:var(--font-body);
  color:var(--color-text);
  background:var(--color-bg);
  line-height:1.6;
}

img{
  max-width:100%;
  display:block;
}

a{
  text-decoration:none;
  color:inherit;
}

button,
input,
textarea,
select{
  font:inherit;
}

.container{
  width:min(1180px, calc(100% - 40px));
  margin:0 auto;
}

/* Top bar */
.topbar{
  background:var(--color-navy-2);
  color:#fff;
  font-size:14px;
}

.topbar .container,
.site-header .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.topbar .container{
  padding:8px 0;
}

.topbar-links,
.topbar-contact{
  display:flex;
  gap:20px;
  align-items:center;
}

/* Header */
.site-header{
  background:#fff;
  border-bottom:1px solid var(--color-border);
  position:sticky;
  top:0;
  z-index:20;
}

.site-header .container{
  padding:16px 0;
}

.site-branding img,
.custom-logo,
.custom-logo-link img,
.site-header .logo img,
.navbar-brand img{
  max-height:72px !important;
  width:auto !important;
}

.site-header,
.header-main,
.main-header{
  overflow:visible;
}

/* Navigation */
.main-nav{
   margin-left:auto;
  margin-right:24px;
}

.main-nav-list,
.main-nav-list .sub-menu{
  list-style:none;
  margin:0;
  padding:0;
}

.main-nav-list{
  display:flex;
  gap:0;
  align-items:center;
}

.main-nav-list > li{
  position:relative;
}

.main-nav-list > li > a{
  display:flex;
  align-items:center;
  gap:5px;
  padding:9px 16px;
  font-size:15px;
  font-weight:600;
  color:var(--color-navy);
  white-space:nowrap;
  border-radius:2px;
  text-decoration:none;
  transition:background 180ms ease,color 180ms ease;
}

.main-nav-list > li > a:hover{
  background:#f3f1eb;
  color:var(--color-navy);
}

.main-nav-list > li.menu-item-has-children > a::after{
  content:'';
  display:inline-block;
  width:7px;
  height:7px;
  border-right:1.8px solid currentColor;
  border-bottom:1.8px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  margin-left:4px;
  transition:transform 200ms ease;
}

.main-nav-list > li.menu-item-has-children:hover > a::after{
  transform:rotate(225deg) translateY(-2px);
}

.main-nav-list > li > .sub-menu{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  padding-top:10px;
  min-width:250px;
  background:#fff;
  box-shadow:var(--shadow-sm);
  z-index:300;
}

.main-nav-list > li:hover > .sub-menu{
  display:block;
}

.main-nav-list > li > .sub-menu::before{
  content:'';
  position:absolute;
  top:10px;
  left:0;
  right:0;
  bottom:0;
  background:#fff;
  border:1px solid #e6e2db;
  box-shadow:0 8px 28px rgba(18,36,53,.12);
  pointer-events:none;
}

.main-nav-list > li > .sub-menu > li{
   list-style:none;
  margin:0;
  padding:0;
  position:relative;
  z-index:1;
}

.main-nav-list > li > .sub-menu > li > a{
  display:block;
  padding:12px 16px 4px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#8a9099;
  text-decoration:none;
}

.main-nav-list > li > .sub-menu > li > a:hover{
  background:none !important;
  color:#ff9900 !important;
}

.main-nav-list > li > .sub-menu > li + li{
  border-top:1px solid #ece7df;
  margin-top:4px;
  padding-top:4px;
}

.main-nav-list .sub-menu .sub-menu{
  display:block !important;
  position:static !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:0 0 8px !important;
  margin:0 !important;
  min-width:0 !important;
}

.main-nav-list .sub-menu .sub-menu::before{
  display:none !important;
}

.main-nav-list .sub-menu .sub-menu > li{
  position:relative;
  z-index:1;
}

.main-nav-list .sub-menu .sub-menu li a{
  display:block;
  padding:8px 16px 8px 20px;
  font-size:14px;
  font-weight:500;
  color:#063759;
  border-radius:2px;
  text-decoration:none;
  white-space:nowrap;
  transition:background 140ms ease,color 140ms ease;
}

.main-nav-list .sub-menu .sub-menu li a:hover{
  background:#f3f1eb;
  color:#063759;
}

/*midlle module */
.section + .about-leto-module{
  padding-top: 6px;
}

.about-leto-module{
  padding-top:2px;
  
}

.about-leto-card{
  display:grid;
  grid-template-columns:1.2fr .95fr;
  align-items:stretch;
  background:#f7f5f1;
  border-radius:0;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}

.about-leto-copy{
 display:block;
  padding:8px 40px;
}

.about-leto-kicker{
  margin:0 0 8px;
  font-size:14px;
  line-height:1;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--color-amber);
  font-weight:800;
}

.about-leto-body{
  margin:0 0 22px;
  font-size:18px;
  line-height:1.55;
  color:var(--color-text);
  max-width:690px;
}

.about-leto-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:18px;
  font-weight:800;
  color:var(--color-navy);
  text-decoration:none;
}

.about-leto-media{
  position:relative;
  min-height:100%;
  clip-path:polygon(16% 0,100% 0,100% 100%,0 100%);
   overflow:hidden;
}

.about-leto-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.about-leto-media::before{
  content:"";
  position:absolute;
  inset:0;
  background:#f4ab21;
  clip-path:polygon(16% 0,17.1% 0,1.1% 100%,0 100%);
  z-index:2;
  pointer-events:none;
}

@media(max-width:1024px){
  .about-leto-card{
    grid-template-columns:1fr;
  }

  .about-leto-copy{
    grid-template-columns:100px 1fr;
    padding:28px;
  }

  .about-leto-media{
    min-height:280px;
    clip-path:none;
  }
   .about-leto-media::before{
    display: none;
  }
}

@media(max-width:720px){
  .about-leto-copy{
    grid-template-columns:1fr;
    gap:20px;
  }

  .about-leto-icon{
    width:88px;
    height:88px;
  }

  .about-leto-title{
    font-size:34px;
  }

  .about-leto-body,
  .about-leto-link{
    font-size:16px;
  }
  .about-leto-media{
    clip-path: none;
    min-height: auto;
    border-radius: 0;
  }

  .about-leto-media::before{
    display: none;
  }

  .about-leto-media img{
    width: 100%;
    height: auto;
    display: block;
  }
}
.home .about-leto-module {
  padding-bottom: 40px;
}

.home .about-leto-module + .section {
  padding-top: 40px;
}
/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 24px;
  border-radius:2px;
  font-weight:700;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}

.btn-primary{
  background:var(--color-amber);
  color:var(--color-navy);
}

.btn-primary:hover{
  background:var(--color-amber-hover);
}

.btn-outline{
  border:1px solid rgba(255,255,255,.45);
  background:rgba(255,255,255,.08);
  color:#fff;
  backdrop-filter:blur(4px);
}

/* Hero */
.hero{
  position:relative;
  background:#1a2e40;
  color:#fff;
  padding:110px 0 50px;
  overflow:hidden;
}

.hero::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(3, 10, 16, 0.76) 0%, rgba(10,22,34,.42) 44%, rgba(10,22,34,.08) 72%);
  z-index:1;
}

.hero-media{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
}

.hero .container{
  position:relative;
  z-index:1;
}

.hero h1{
  font-size:64px;
  line-height:.96;
  max-width:780px;
  margin:0 0 18px;
  font-weight:900;
}

.hero p{
  font-size:21px;
  max-width:620px;
  margin:0 0 28px;
}

.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

.products-section{
  padding:88px 0 92px;
}

.products-carousel-wrap{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
}

.products-carousel{
  overflow:hidden;
}

.products-track{
  display:flex;
  gap:28px;
  transition:transform .35s ease;
  will-change:transform;
}

.product-slide{
  flex:0 0 calc((100% - 56px) / 3);
  min-width:0;
}

.products-arrow{
  width:46px;
  height:46px;
  border:none;
  border-radius:999px;
  background:#fff;
  color:var(--color-navy);
  box-shadow:0 6px 20px rgba(18,36,53,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, opacity .18s ease;
}

.products-arrow:hover{
  transform:translateY(-1px);
  background:#f3f1eb;
}

.products-arrow svg{
  width:18px;
  height:18px;
}

@media (max-width:1024px){
  .product-slide{
    flex:0 0 calc((100% - 28px) / 2);
  }
}

@media (max-width:720px){
  .products-carousel-wrap{
    grid-template-columns:1fr;
    gap:14px;
  }

  .products-arrow{
    display:none;
  }

  .product-slide{
    flex:0 0 100%;
  }

  .hero-inner{
    width:min(100%, calc(100% - 24px));
    padding:72px 0 78px;
  }

  .hero{
    min-height:520px;
  }
}

/* Sections */
.section{
  padding:80px 0;
}

.section-label{
  font-size:14px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--color-amber);
  font-weight:800;
  margin:0 0 8px;
  text-align:center;
}

.section-title{
  text-align:center;
  font-size:54px;
  line-height:1.08;
  margin:0 0 10px;
  font-weight:900;
}

.section-sub{
  text-align:center;
  color:var(--color-text-muted);
  font-size:19px;
  max-width:760px;
  margin:0 auto 36px;
}

.section-title-left{
  font-size:24px;
  line-height:1.06;
  margin:0 0 18px;
  font-weight:900;
}

/* Product cards / archive cards */
.products-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:28px;
  align-items:stretch;
}

.product-slider{
  display:flex;
  gap:28px;
  align-items:stretch;
}

.product-card{
  height:100%;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}

.product-card-link{
  display:flex;
  flex-direction:column;
  height:100%;
}

.product-card-media{
  position:relative;
  background:#f5f4ef;
  overflow:hidden;
}

.product-card-img{
  width:100%;
  height:200px;
  object-fit:cover;
  transition:opacity .28s ease, transform .42s ease;
}

.product-card-img-secondary{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
}

.product-card:hover .product-card-img-primary{
  opacity:0;
  transform:scale(1.03);
}

.product-card:hover .product-card-img-secondary{
  opacity:1;
  transform:scale(1.03);
}

.product-card-body{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:18px 20px 16px;
}

.product-card-title{
  font-size:20px;
  line-height:1.1;
  font-weight:900;
  margin:0 0 10px;
}

.product-card-excerpt{
  font-size:14px;
  color:var(--color-text-muted);
  margin:0 0 14px;
  min-height:48px;
}

.product-mini-features{
  list-style:none;
  padding:0;
  margin:0 0 12px;
  display:grid;
  gap:6px;
  min-height:96px;
}

.product-mini-features li{
  position:relative;
  padding-left:16px;
  color:var(--color-text-muted);
  font-size:14px;
  line-height:1.45;
}

.product-mini-features li::before{
  content:'✓';
  position:absolute;
  left:0;
  top:0;
  color:var(--color-success);
  font-weight:900;
}

.product-card-spacer{
  display:none;
}

.product-card-footer{
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid #ece7df;
  font-size: 14px;
  font-weight:800;
  color:var(--color-navy);
}

/* Archive */
.archive-head{
  padding:56px 0 24px;
}

.archive-title{
  font-size:54px;
  line-height:1.08;
  margin:0 0 10px;
  font-weight:900;
}

.archive-sub{
  font-size:18px;
  color:var(--color-text-muted);
  max-width:640px;
}

.archive-tabs{
  display:flex;
  gap:0;
  border-bottom:1px solid var(--color-border);
  margin:30px 0 34px;
}

.archive-tab{
  padding:14px 18px;
  border:1px solid transparent;
  border-bottom:none;
  border-radius:14px 14px 0 0;
  font-weight:700;
  color:var(--color-text-muted);
}

.archive-tab.active{
  background:#fff;
  border-color:var(--color-border);
  color:var(--color-navy);
}

/* Breadcrumbs */
.breadcrumb-bar{
  background:#fbf9f9;
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
}

.breadcrumb-trail{
  padding:12px 0;
  font-size:14px;
  color:#66717d;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.support-section{
  padding:88px 0 96px;
}

.support-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:28px;
  align-items:stretch;
}

.support-card{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  box-shadow:var(--shadow-sm);
  padding:28px;
  display:flex;
  flex-direction:column;
  min-height:100%;
}

.support-card.accent{
  background:var(--color-amber);
  border-color:transparent;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
}

.support-card-label{
  margin:0 0 8px;
  font-size:13px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#6f7782;
}

.support-card h2{
  margin:0;
  font-size:38px;
  line-height:1.06;
  font-weight:900;
  color:var(--color-navy);
}

.support-card p{
  color:var(--color-text-muted);
}

.support-checks{
  display:grid;
  gap:10px;
  margin:4px 0 24px;
}

.support-check{
  position:relative;
  display:block;
  padding-left:18px;
  font-size:15px;
  color:var(--color-text);
}

.support-check::before{
  content:'✓';
  position:absolute;
  left:0;
  top:0;
  color:var(--color-success);
  font-weight:900;
}

.link-arrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:auto;
  font-weight:800;
  color:var(--color-navy);
}

.btn-navy{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 20px;
  border-radius:2px;
  background:var(--color-navy);
  color:#fff;
  font-weight:800;
}

.support-avatar{
    width: 74px;
  height: 74px;
  min-width: 74px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.support-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.homepage-help-avatar svg {
  width: 74px;
  height: 74px;
  display: block;
}

@media (max-width:720px){
  .support-grid{
    grid-template-columns:1fr;
  }

  .support-card.accent{
    grid-template-columns:1fr;
  }

  .support-card h2{
    font-size:30px;
  }

  .support-avatar{
    width:96px;
    height:96px;
  }
}

/* Single product page */
.single-product-top{
  padding:34px 0 46px;
  background:#fff;
}

.single-product-hero{
  display:grid;
   grid-template-columns:minmax(360px, 1fr) minmax(0, 1.35fr);
  gap:44px;
  align-items:start;
}

.single-product-gallery{
  min-width:0;
}

.single-product-main-image{
  width:100%;
  max-width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  display:block;
  border-radius:2px;
}

.single-product-thumbs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}

.single-product-thumb{
  padding:0;
  border:2px solid transparent;
  border-radius:2px;
  overflow:hidden;
  background:none;
  cursor:pointer;
}

.single-product-thumb.is-active{
  border-color:var(--color-amber);
}

.single-product-thumb img{
  width:74px;
  height:56px;
  object-fit:cover;
  display:block;
}

.single-product-summary{
  min-width:0;
  max-width:560px;
  padding-top:6px;
}

.single-product-kicker{
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#5c6875;
  font-weight:800;
  margin:0 0 10px;
}

.single-product-title{
  font-size:clamp(30px, 4.2vw, 40px);
  line-height:.98;
  margin:0 0 24px;
  font-weight:900;
  color:var(--color-navy);
}

.single-product-intro{
  margin:0 0 24px;
  max-width:none;
  color:#4b5563;
  font-size:16px;
  line-height:1.6;
}

.single-product-intro p{
  margin:0;
  max-width:none;
}

.single-product-badges{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px 10px;
  margin:0 0 28px;
}

.single-product-badge{
  text-align:center;
}

.single-product-badge-icon{
  width:82px;
  height:82px;
  margin:0 auto 8px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.single-product-badge-icon img{
  width:82px;
  height:82px;
  object-fit:contain;
  display:block;
  margin:0 auto;
}

.single-product-badge-icon svg{
  width:82px;
  height:82px;
  margin:0 auto 0;
}

.single-product-badge-text{
  display:block;
  font-size:8px;
  font-weight:800;
  text-transform:uppercase;
  line-height:1.2;
  min-height:2.4em;
  text-align:center;
  margin-top: 0;
}

.single-product-actions{
  margin-top:8px;
}

/* Product details */
.product-details-section{
  padding:24px 0 76px;
}

/* Legacy spec table */
.spec-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border-radius:2px;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}

.spec-table td{
  padding:6px 6px;
  border-bottom:1px solid var(--color-border);
  font-size:16px;
}

.spec-table tr:last-child td{
  border-bottom:none;
}

.spec-table td:first-child{
  width:55%;
  background:#f3f1eb;
  color:#5b6773;
}

/* Ideal for */
.ideal-for-list{
  list-style:none;
  padding:0;
  margin:12px 0 34px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.ideal-for-list li{
  position:relative;
  padding-left:28px;
}

.ideal-for-list li::before{
  content:'✓';
  position:absolute;
  left:0;
  top:0;
  color:var(--color-success);
  font-weight:900;
}

/* Advice */
.need-advice{
  background:#094f8a;
  color:#fff;
  border-radius:2px;
  padding:22px 24px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  align-items:center;
  margin-top:8px;
}

.need-advice h3{
  margin:0 0 8px;
  font-size:18px;
  line-height:1.1;
}

.need-advice p{
  margin:0 0 14px;
  color:#d5dbe3;
}

.need-advice img{
  width:72px;
  height:72px;
  border-radius:50%;
  object-fit:cover;
  display:block;
}

.download-doc-top{
  display:flex;
  gap:12px;
}

.download-doc-icon{
  width:56px;
  height:56px;
 
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
}

.download-doc-top h3{
  font-family: var(--font-display);
  font-size: 16px;
  line-height: 1.35;
  font-weight: 600;
  color: var(--color-navy);
  margin: 0 0 8px;
}

.download-doc-title a{
  color:inherit;
}


.download-doc-icon {

  display: inline-flex;
  align-items: center;
  justify-content: center;
 
  overflow: hidden;
}

.download-doc-icon svg {
  width: 24px;
  height: 24px;
  display: block;
  flex: 0 0 24px;
}


/* Footer */
.footer{
  background:#063759;
  color:#fff;
  padding:50px 0 22px;
  margin-top:40px;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.1fr .8fr .8fr 1fr;
  gap:32px;
}

.footer h4{
  margin:0 0 16px;
  font-size:15px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.footer p,
.footer a{
  color:#d5dbe3;
}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.14);
  margin-top:26px;
  padding-top:16px;
  color:#c4cdd8;
  font-size:14px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

/* Responsive */
@media (max-width:1024px){
  .product-slider,
  .products-grid,
  .download-cards-grid,
  .product-details-grid,
  .footer-grid{
    grid-template-columns:1fr;
  }

  .single-product-hero{
    grid-template-columns:1fr;
    gap:28px;
  }

  .single-product-main-image{
    max-width:100%;
  }

  .single-product-title,
  .archive-title,
  .section-title{
    font-size:42px;
  }

  .hero h1{
    font-size:48px;
  }

  .single-product-badges{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

@media (max-width:720px){
  .main-nav,
  .topbar{
    display:none;
  }

  .hero{
    padding:72px 0 82px;
  }

  .hero h1{
    font-size:38px;
  }

  .section-title,
  .archive-title,
  .section-title-left,
  .single-product-title{
    font-size:34px;
  }

  .container{
    width:min(100%, calc(100% - 24px));
  }

  .single-product-badges{
    grid-template-columns:1fr 1fr;
  }

  .single-product-thumb img{
    width:74px;
    height:56px;
  }

  .specifications-table th,
  .specifications-table td{
    display:block;
    width:100%;
    padding:16px 18px;
  }

  .specifications-table th{
    border-bottom:0;
  }

  .specifications-table tbody tr:not(:last-child) td{
    border-bottom:1px solid rgba(15,31,54,.08);
  }

  .need-advice{
    grid-template-columns:1fr;
  }
}

/* Front page only */
/* Homepage products */
.product-slider-shell{
  position:relative;
  display:flex;
  align-items:center;
  gap:16px;
}

.product-slider-viewport{
  overflow:hidden;
  flex:1;
}

.product-slider{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 56px) / 3);
  gap:28px;
  overflow-x:auto;
  scroll-behavior:smooth;
  scrollbar-width:none;
}

.product-slider::-webkit-scrollbar{
  display:none;
}

.product-slider-arrow{
  width:46px;
  height:46px;
  border:none;
  border-radius:999px;
  background:#fff;
  color:var(--color-navy);
  box-shadow:0 6px 20px rgba(18,36,53,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, opacity .18s ease;
}

.product-slider-arrow:hover{
  transform:translateY(-1px);
  background:#f3f1eb;
}

.product-slider-arrow::before{
  content:'';
  width:10px;
  height:10px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  display:block;
}

.product-slider-arrow.prev::before{
  transform:rotate(135deg);
  margin-left:4px;
}

.product-slider-arrow.next::before{
  transform:rotate(-45deg);
  margin-right:4px;
}

/* Homepage support */
.homepage-support-section{
  padding: 10px 0 10px;
}

.homepage-support-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:28px;
  align-items:stretch;
}

.homepage-resource-card,
.homepage-help-card{
  border-radius:2px;
  box-shadow:var(--shadow-sm);
  padding:28px;
  min-height:100%;
}

.homepage-resource-card{
  background:#fff;
  border:1px solid var(--color-border);
}

.homepage-help-card{
  background:var(--color-amber);
  border:1px solid transparent;
  display:flex;
  flex-direction:column;
}

.homepage-resource-icon{
  width:56px;
  height:56px;
  border-radius:2px;
  background:var(--color-surface-alt);
  color:var(--color-navy);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
}

.homepage-support-kicker{
  margin:0 0 8px;
  font-size:13px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#ffb03e;
}

.homepage-support-title, .about-leto-title{
  margin:0 0 14px;
  font-size:38px;
  line-height:1.06;
  font-weight:900;
  color:var(--color-navy);
}

.homepage-resource-list{
  list-style:none;
  padding:0;
  margin:0 0 24px;
  display:grid;
  gap:10px;
}

.homepage-resource-list li{
  position:relative;
  padding-left:18px;
  font-size:15px;
  color:var(--color-text);
}

.homepage-resource-list li::before{
  content:'✓';
  position:absolute;
  left:0;
  top:0;
  color:var(--color-success);
  font-weight:900;
}

.homepage-support-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:auto;
  font-size: 14px;
  font-weight:800;
  color:var(--color-navy);
}

.homepage-help-top{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
}

.homepage-help-text{
  margin:0 0 22px;
  color:#51452b;
}

.homepage-help-avatar{
  width:110px;
  height:110px;

}

.homepage-help-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 20px;
  border-radius:2px;
  background:var(--color-navy);
  color:#fff;
  font-weight:800;
  align-self:flex-start;
}

@media (max-width:1024px){
  .product-slider > .product-card{
    flex:0 0 calc((100% - 28px) / 2);
  }
}

@media (max-width:720px){
  .product-slider-shell,
  .homepage-support-grid,
  .homepage-help-top{
    grid-template-columns:1fr;
  }

  .product-slider-arrow{
    display:none;
  }

  .product-slider > .product-card{
    flex:0 0 100%;
  }

  .homepage-support-title{
    font-size:30px;
  }

  .homepage-help-avatar{
    width:96px;
    height:96px;
  }
}

/* Homepage slider override */
#home-product-slider.product-slider{
  display:flex !important;
  flex-wrap:nowrap !important;
  grid-template-columns:none !important;
  gap:28px;
  align-items:stretch;
}

.product-slider-viewport{
  overflow:hidden;
}

.product-slider-shell{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
}

.product-slider-arrow{
  width:46px;
  height:46px;
  border:none;
  border-radius:999px;
  background:#fff;
  color:var(--color-navy);
  box-shadow:0 6px 20px rgba(18,36,53,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

.product-slider > .product-card{
  flex:0 0 calc((100% - 56px) / 3);
  min-width:0;
}

#home-product-slider.product-slider > .product-card{
  display:flex;
  height:auto;
  min-height:100%;
}

#home-product-slider .product-card-link{
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
}

#home-product-slider .product-card-body{
  display:flex;
  flex-direction:column;
  flex:1;
}

#home-product-slider .product-card-excerpt{
  min-height:48px;
}

#home-product-slider .product-mini-features{
  min-height:96px;
}

#home-product-slider .product-card-footer{
  margin-top:auto;
}

.key-features-list{
  list-style:none;
  max-width: 600px;
  margin:20px 0 0;
  padding:26px 28px;
  background:#fff;
  border:1px solid rgba(15,31,54,.08);
  border-radius:2px;
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
  gap:18px;
}

.key-features-list li{
  position:relative;
  margin:0;
  padding:0 0 0 30px;
  background:none;
  border:0;
  box-shadow:none;
  color:var(--color-text);
  font-size:16px;
  line-height:1.55;
}

.key-features-list li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:2px;
  color:#ffac2f;
  font-weight:800;
  line-height:1;
}

.single-product-meta-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
  margin:0 0 24px;
}

.single-product-meta-item{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  padding:14px 16px;
}

.single-product-meta-label{
  display:block;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--color-text-muted);
  margin:0 0 6px;
}

.single-product-meta-value{
  display:block;
  font-size:16px;
  font-weight:700;
  color:var(--color-navy);
}

@media (max-width: 720px){
  .single-product-meta-list{
    grid-template-columns:1fr;
  }
}

.single-product-windzones-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  padding:16px 20px;
  margin:0 0 22px;
}

.single-product-windzones{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:nowrap;
}

.single-product-wz-label{
  font-size:13px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--color-text-muted);
  white-space:nowrap;
}

.single-product-wz-values{
  display:flex;
  gap:14px;
}

.single-product-wz-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  background:var(--color-bg);
  border:1px solid var(--color-border);
  border-radius:2px;
  padding:8px 16px;
  text-align:center;
  min-width:72px;
}

.single-product-wz-sublabel{
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--color-text-muted);
  margin-bottom:4px;
}

.single-product-wz-item strong{
  font-size:16px;
  font-weight:900;
  color:var(--color-navy);
}

.single-product-accreditations{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:nowrap;
  flex-shrink:0;
}

.single-product-accreditations img{
  height:36px;
  width:auto;
  max-width:100px;
  object-fit:contain;
  display:block;
}

@media (max-width:720px){
  .single-product-windzones-bar{
    flex-wrap:wrap;
    gap:14px;
  }

  .single-product-windzones{
    flex-wrap:wrap;
  }

  .single-product-accreditations{
    flex-wrap:wrap;
  }
}

.product-wind-accred-content{
  display:flex;
  flex-direction:column;
  gap:28px;
}

@media (max-width:1024px){
  .product-wind-accred-row{
    grid-template-columns:160px 1fr;
    gap:24px;
  }

  .product-wind-map img{
    max-width:360px;
    margin:0 auto;
  }

  .product-accreditations{
    grid-column:2;
    justify-self:start;
    min-width:0;
  }
}

@media (max-width:720px){
  .product-wind-accred-row{
    grid-template-columns:1fr;
    gap:18px;
    margin:0 0 24px;
  }

  .product-accreditations{
    grid-column:auto;
    justify-self:start;
  }

  .product-accred-logos{
    flex-wrap:wrap;
  }
}

.product-wind-accred-row > .container{
  width:min(1180px, calc(100% - 40px));
  margin:0 auto;
}

.product-accred-logos img[alt="BBA"]{
  height: 60px !important;
}

.product-accred-logos img[alt="CE"]{
  height:54px;
  max-width:76px;
}

.product-accred-logos img[alt="UKCA"]{
  height:54px;
  max-width:104px;
}

.footer .custom-logo,
.footer .footer-logo{
  max-height:56px;
  width:auto;
}

/* Strip */
.product-wind-accred-row{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -50px;
  margin-bottom: 18px;
  background: #fff;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 12px 0;
  box-shadow:
    inset 0 6px 12px -6px rgba(0,0,0,0.06),
    inset 0 -6px 12px -6px rgba(0,0,0,0.06);
}

.product-wind-accred-inner{
  display: flex;
  align-items: center;
  gap: 56px;
  min-width: 0;
}

/* Map stacked with label underneath */
.product-wind-map{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.product-wind-map img{
  width: 82px;
  height: auto;
  display: block;
  opacity: 0.45;
}

/* Wind zones title now sits under map — move it into .product-wind-map in HTML */
/* OR target it here if it stays in .product-wind-zones */
.product-wind-zones .product-wind-accred-title{
  display: none; /* hide the one next to boxes */
}

.product-wind-accred-title{
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin: 0 0 10px;
}

.product-wind-map::after{
  font-size: 10px;
  letter-spacing: 0.14em;
  font-weight: 700;
  color: #6b7280;
}

/* Wind zone boxes */
.product-wind-zones{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex-wrap: wrap;
}

.product-wind-values{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.product-wind-item{
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 3px;
  padding: 14px 32px;
  text-align: center;
  min-width: 130px;
  box-shadow: 0 1px 0 rgba(18,36,53,.03);
}

.product-wind-sublabel{
  display: block;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6b7280;
  margin-bottom: 6px;
  line-height: 1.2;
  font-weight: 700;
}

.product-wind-item strong{
  display: block;
  font-size: 36px;
  font-weight: 900;
  line-height: 1;
  color: var(--color-navy);
}

/* Logos — pushed right, proper spacing */
.product-accreditations{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-self: end;
  width: max-content;
  max-width: max-content;
  min-width: 320px;
  margin-left: auto;
  transform: none;
  flex-shrink: 0;
}

.product-accred-logos{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 64px;
  flex-wrap: nowrap;
  width: max-content;
}

/* Logos — override theme img rule */
.product-accred-logos img{
  height: 68px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain;
  display: block;
  flex-shrink: 0;
}

.product-details-grid{
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  gap: 2px;
  align-items: start;
}

.specifications-table-wrap{
  margin-top: 22px;
  max-width: 600px;
  border-radius: 2px;
  background: linear-gradient(180deg, #f8f6f2 0%, #f4f1ec 100%);
  border: 1px solid #e4dfd7;
  box-shadow: 0 10px 24px -18px rgba(0,0,0,0.16);
  overflow: hidden;
}

.specifications-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
}

.specifications-table th,
.specifications-table td{
  padding: 10px 20px;
  vertical-align: middle;
  text-align: left;
  font-size: 16px;
  line-height: 1.5;
  border-top: 1px solid #e7e2da;
}

.specifications-table tbody tr:first-child th,
.specifications-table tbody tr:first-child td{
  border-top: 0;
}

.specifications-table th{
  width: 62%;
  background: #efefef;
  color: #6a737d;
  font-weight: 500;
  text-align: left;
}

.specifications-table td{
  width: 38%;
  background: #faf8f4;
  color: var(--color-navy);
  font-weight: 600;
  border-left: 1px solid #e4dfd7;
}

.product-details-grid .section-title-left{
  margin: 0 0 18px;
}

@media (max-width: 900px){
  .product-details-grid{
    grid-template-columns: 1fr;
    gap: 2px;
  }
}

.downloads-hero{
  padding: 44px 0 54px;
  background: linear-gradient(180deg, #fff 0%, #fbfaf7 100%);
  border-bottom: 1px solid var(--color-border);
}

.downloads-hero .section-label{
  margin:0 0 4px;
  text-align:left;
}

.downloads-hero .section-title-left{
  margin:0 0 8px;
}

.download-product-block{
  background: linear-gradient(180deg, #fbfaf7 0%, #f7f5f1 100%);
  border: 1px solid #e4dfd7;
  border-radius: 2px;
  padding: 36px 32px 30px;
  box-shadow: 0 10px 24px -20px rgba(0,0,0,0.14);
  margin-bottom: 24px;
}

.download-product-head{
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-end;
  margin-bottom: 24px;
}

.download-product-head .section-title-left{
  margin: 0;
}

.download-cards-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.download-doc-card{
  border: 1px solid #ddd8cf;
  border-radius: 2px;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 22px 22px 18px;
  min-height: 176px;
}

.download-doc-title{
  font-family: var(--font-display);
  font-weight: 900;
  margin: 0 0 6px;
  font-size: 21px;
  line-height: 1.24;
  color: var(--color-navy);
}

.download-doc-meta{
  margin: 0;
  color: #6b7280;
  font-size: 14px;
}

.download-doc-actions{
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #e6e1d8;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 14px;
  font-weight: 800;
}

.download-doc-actions a{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #094f8a;
  text-decoration: none;
  transition: opacity 180ms ease;
}

.download-doc-actions a:hover{
  opacity: 0.65;
}

/* Download button — treated as a pill */
.download-doc-actions a[download]{
  color: #094f8a;

  padding: 7px 14px;
  border-radius: 3px;
  font-size: 13px;
}

.download-doc-actions a[download]:hover{
  opacity: 0.82;
}

.front-accreditation-band {
  padding: 0 0 10px;
}

.front-accreditation-band .container {
 width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -50px;
  margin-bottom: 18px;
  background: #fff;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 12px 0;
  box-shadow:
    inset 0 6px 12px -6px rgba(0,0,0,0.06),
    inset 0 -6px 12px -6px rgba(0,0,0,0.06);
}

.front-accreditation-band__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 56px;
  flex-wrap: wrap;
  padding: 22px 0;
  
}

.front-accreditation-band__logo {
  display: block;
  height: 78px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
}

.front-accreditation-band__logo[src*="bba"] {
  height: 62px;
  max-width: 130px;
}

@media (max-width: 767px) {
  .front-accreditation-band {
    padding: 28px 0 22px;
  }

  .front-accreditation-band__inner {
    gap: 28px;
    padding: 18px 0;
  }

  .front-accreditation-band__logo {
    height: 42px;
    max-width: 100px;
  }

  .front-accreditation-band__logo[src*="bba"] {
    height: 48px;
    max-width: 96px;
  }
}