/*
Theme Name: CH Containers
Theme URI: https://chcontainers.com/
Author: CH Containers
Description: Custom homepage theme for CH Containers — UK shipping container sales. Built for use with WooCommerce.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: ch-containers
*/



  :root{
    --steel:      #1C2B38;
    --steel-dark: #121C25;
    --corten:     #B5542E;
    --corten-dark:#8F3F20;
    --safety:     #E8A93B;
    --paper:      #F3F0E9;
    --paper-dim:  #E7E2D6;
    --ink:        #23262B;
    --ink-soft:   #5B6167;
    --white:      #FFFFFF;

    --display: 'Archivo Black', 'Oswald', sans-serif;
    --stencil:  'Oswald', sans-serif;
    --body:     'Source Sans 3', sans-serif;

    --radius: 2px;
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:var(--body);
    color:var(--ink);
    background:var(--paper);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }
  ul{ list-style:none; }
  .wrap{ max-width:1180px; margin:0 auto; padding:0 24px; }
  section{ padding:88px 0; }
  h1,h2,h3{ font-family:var(--display); text-transform:uppercase; letter-spacing:0.5px; color:var(--steel); line-height:1.08; }
  .eyebrow{
    font-family:var(--stencil); font-weight:600; text-transform:uppercase;
    letter-spacing:3px; font-size:12.5px; color:var(--corten);
  }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    font-family:var(--stencil); font-weight:600; text-transform:uppercase;
    letter-spacing:1.5px; font-size:14px;
    padding:15px 30px; border-radius:var(--radius);
    border:2px solid transparent; cursor:pointer; transition:transform .15s ease, background .15s ease;
  }
  .btn-primary{ background:var(--corten); color:var(--white); }
  .btn-primary:hover{ background:var(--corten-dark); transform:translateY(-2px); }
  .btn-outline{ border-color:var(--steel); color:var(--steel); background:transparent; }
  .btn-outline:hover{ background:var(--steel); color:var(--white); transform:translateY(-2px); }
  .btn-outline.on-dark{ border-color:var(--paper); color:var(--paper); }
  .btn-outline.on-dark:hover{ background:var(--paper); color:var(--steel); }

  /* Corrugation texture used as a recurring material cue */
  .corrugated{
    background-image: repeating-linear-gradient(90deg, rgba(255,255,255,0.06) 0px, rgba(255,255,255,0.06) 2px, transparent 2px, transparent 14px);
  }

  /* ================= HEADER ================= */
  header{
    position:sticky; top:0; z-index:50;
    background:var(--steel); border-bottom:4px solid var(--safety);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 24px; max-width:1180px; margin:0 auto;
  }
  .logo{ display:flex; align-items:center; gap:12px; }
  .logo-mark{
    width:38px; height:30px; background:var(--corten); border-radius:2px; position:relative;
    background-image: repeating-linear-gradient(90deg, rgba(0,0,0,0.15) 0, rgba(0,0,0,0.15) 2px, transparent 2px, transparent 8px);
    flex-shrink:0;
  }
  .logo-mark::after{
    content:""; position:absolute; inset:0; border:2px solid var(--corten-dark); border-radius:2px;
  }
  .logo-text{ font-family:var(--display); color:var(--white); font-size:19px; letter-spacing:0.5px; }
  .logo-text span{ color:var(--safety); }
  .nav-links{ display:flex; gap:32px; font-family:var(--stencil); font-weight:500; letter-spacing:1px; text-transform:uppercase; font-size:13.5px; }
  .nav-links a{ color:var(--paper); opacity:.85; transition:opacity .15s; }
  .nav-links a:hover{ opacity:1; }
  .nav-cta{ display:flex; align-items:center; gap:18px; }
  .nav-phone{ font-family:var(--stencil); color:var(--safety); font-weight:600; letter-spacing:0.5px; font-size:14.5px; }
  .nav-toggle{ display:none; }

  @media (max-width: 860px){
    .nav-links, .nav-phone{ display:none; }
    .nav-toggle{ display:block; color:var(--paper); font-family:var(--stencil); font-size:13px; letter-spacing:1px; }
  }

  /* ================= HERO ================= */
  .hero{
    background:var(--steel-dark);
    color:var(--paper);
    padding:72px 0 0;
    position:relative;
    overflow:hidden;
  }
  .hero-grid{
    display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;
  }
  .hero h1{
    color:var(--white); font-size:clamp(34px, 4.6vw, 58px); margin:14px 0 20px;
  }
  .hero h1 em{ color:var(--safety); font-style:normal; }
  .hero p.lead{
    font-size:18px; color:#C7CDD3; max-width:480px; margin-bottom:32px;
  }
  .hero-actions{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:36px; }
  .hero-trust{ display:flex; gap:28px; flex-wrap:wrap; font-family:var(--stencil); font-size:13px; letter-spacing:1px; text-transform:uppercase; color:#9AA3AB; }
  .hero-trust strong{ color:var(--safety); font-family:var(--display); display:block; font-size:22px; letter-spacing:0; margin-bottom:2px; }

  /* Signature element: proportional container stack, rendered to true relative scale (10/20/30/40 ft) */
  .stack{
    display:flex; flex-direction:column; gap:10px; padding-bottom:64px;
  }
  .stack-bar{
    position:relative;
    background:var(--corten);
    border-radius:2px;
    display:flex; align-items:center; justify-content:space-between;
    padding:0 18px;
    color:var(--white);
    font-family:var(--stencil); font-weight:600; letter-spacing:1px;
    box-shadow: inset 0 0 0 2px rgba(0,0,0,0.18);
  }
  .stack-bar.corrugated{ background-image:
      repeating-linear-gradient(90deg, rgba(0,0,0,0.12) 0, rgba(0,0,0,0.12) 2px, transparent 2px, transparent 12px);
    background-color:var(--corten);
  }
  .stack-bar .len{ font-size:13px; }
  .stack-bar .cta-mini{ font-size:11.5px; opacity:.85; text-transform:uppercase; }
  .stack-bar:nth-child(1){ width:25%; height:46px; background-color:var(--safety); color:var(--steel-dark); }
  .stack-bar:nth-child(2){ width:50%; height:46px; }
  .stack-bar:nth-child(3){ width:75%; height:46px; }
  .stack-bar:nth-child(4){ width:100%; height:46px; background-color:var(--steel); box-shadow: inset 0 0 0 2px rgba(255,255,255,0.12); }
  .stack-caption{ font-size:12px; color:#8B939B; margin-top:2px; font-family:var(--stencil); letter-spacing:1px; text-transform:uppercase; }

  @media (max-width: 900px){
    .hero-grid{ grid-template-columns:1fr; }
    .stack{ padding-bottom:40px; }
  }

  /* ================= SIZE CATEGORIES ================= */
  .sizes{ background:var(--paper); }
  .section-head{ text-align:center; max-width:640px; margin:0 auto 52px; }
  .section-head h2{ font-size:clamp(26px,3.4vw,38px); margin-top:10px; }
  .section-head p{ color:var(--ink-soft); margin-top:14px; font-size:16.5px; }

  .size-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
  .size-card{
    background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius);
    padding:26px 22px 24px; transition:transform .15s ease, box-shadow .15s ease;
  }
  .size-card:hover{ transform:translateY(-4px); box-shadow:0 14px 28px rgba(28,43,56,0.10); }
  .size-card .len-tag{
    font-family:var(--display); font-size:15px; color:var(--white); background:var(--steel);
    display:inline-block; padding:5px 10px; border-radius:2px; margin-bottom:16px;
  }
  .size-card .bar{ height:10px; border-radius:2px; background:var(--corten); margin-bottom:18px; }
  .size-card:nth-child(1) .bar{ width:35%; background:var(--safety); }
  .size-card:nth-child(2) .bar{ width:58%; }
  .size-card:nth-child(3) .bar{ width:80%; }
  .size-card:nth-child(4) .bar{ width:100%; background:var(--steel); }
  .size-card h3{ font-size:19px; margin-bottom:8px; }
  .size-card p{ color:var(--ink-soft); font-size:14.5px; margin-bottom:16px; }
  .size-card .price{ font-family:var(--stencil); font-weight:600; color:var(--corten); font-size:15px; margin-bottom:14px; }
  .size-card .price small{ color:var(--ink-soft); font-weight:400; text-transform:none; letter-spacing:0; }
  .size-card a.view{ font-family:var(--stencil); font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--steel); border-bottom:2px solid var(--safety); padding-bottom:3px; }

  @media (max-width: 900px){ .size-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width: 560px){ .size-grid{ grid-template-columns:1fr; } }

  /* ================= FEATURED PRODUCTS (WooCommerce placeholders) ================= */
  .products{ background:var(--paper-dim); }
  .product-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .product-card{
    background:var(--white); border-radius:var(--radius); overflow:hidden;
    border:1px solid #DAD4C4;
  }
  .product-media{
    aspect-ratio:4/3; background:
      linear-gradient(135deg, var(--steel) 0%, var(--steel-dark) 100%);
    position:relative; overflow:hidden;
  }
  .product-media::before{
    content:""; position:absolute; inset:0;
    background-image: repeating-linear-gradient(90deg, rgba(255,255,255,0.05) 0, rgba(255,255,255,0.05) 3px, transparent 3px, transparent 20px);
  }
  .product-media .badge{
    position:absolute; top:12px; left:12px; background:var(--safety); color:var(--steel-dark);
    font-family:var(--stencil); font-weight:600; font-size:11px; letter-spacing:1px; text-transform:uppercase;
    padding:5px 10px; border-radius:2px; z-index:2;
  }
  .product-media .ph-label{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    color:rgba(255,255,255,0.35); font-family:var(--stencil); letter-spacing:2px; font-size:12px; text-transform:uppercase;
  }
  .product-body{ padding:18px 20px 22px; }
  .product-body .cat{ font-family:var(--stencil); font-size:11.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--corten); margin-bottom:6px; }
  .product-body h3{ font-size:17px; text-transform:none; letter-spacing:0; margin-bottom:8px; font-family:var(--stencil); font-weight:600; color:var(--steel); }
  .product-body .price-row{ display:flex; align-items:center; justify-content:space-between; margin-top:14px; }
  .product-body .price{ font-family:var(--display); font-size:19px; color:var(--ink); }
  .product-body .price small{ font-family:var(--body); font-weight:400; font-size:12px; color:var(--ink-soft); text-transform:none; }
  .add-btn{
    font-family:var(--stencil); font-size:12px; letter-spacing:1px; text-transform:uppercase; font-weight:600;
    background:var(--steel); color:var(--white); padding:9px 14px; border-radius:2px; border:none; cursor:pointer;
  }
  .add-btn:hover{ background:var(--corten); }
  .products-footer{ text-align:center; margin-top:40px; }

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

  /* ================= WHY / DELIVERY split ================= */
  .why{ background:var(--steel); color:var(--paper); }
  .why-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
  .why .section-head{ text-align:left; margin:0 0 36px; max-width:100%; }
  .why .section-head h2{ color:var(--white); }
  .why .section-head p{ color:#B9C1C8; }
  .why-list{ display:flex; flex-direction:column; gap:22px; }
  .why-item{ display:flex; gap:16px; }
  .why-num{
    font-family:var(--display); font-size:14px; color:var(--steel-dark); background:var(--safety);
    width:34px; height:34px; border-radius:2px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .why-item h4{ font-family:var(--stencil); font-weight:600; font-size:15.5px; letter-spacing:0.5px; text-transform:uppercase; color:var(--white); margin-bottom:4px; }
  .why-item p{ color:#AEB6BD; font-size:14.5px; }

  .delivery-panel{
    background:var(--steel-dark); border-radius:var(--radius); padding:36px; border:1px solid #2B3A47;
  }
  .delivery-panel .eyebrow{ color:var(--safety); }
  .delivery-panel h3{ color:var(--white); font-size:24px; margin:10px 0 16px; }
  .delivery-panel p{ color:#B9C1C8; font-size:15px; margin-bottom:22px; }
  .delivery-map{
    border-radius:2px; margin-bottom:22px;
    background:#1A2731;
    border:1px solid #2B3A47;
    padding:8px 4px 0;
  }
  .delivery-map svg{ width:100%; height:auto; display:block; }
  .delivery-list{ display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
  .delivery-list li{ font-size:14px; color:#C7CDD3; padding-left:16px; position:relative; }
  .delivery-list li::before{ content:"—"; position:absolute; left:0; color:var(--safety); }

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

  /* ================= TRUST / TESTIMONIALS ================= */
  .trust{ background:var(--paper); }
  .trust-strip{
    display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #DAD4C4; border-bottom:1px solid #DAD4C4;
    margin-bottom:56px;
  }
  .trust-stat{ text-align:center; padding:28px 12px; border-right:1px solid #DAD4C4; }
  .trust-stat:last-child{ border-right:none; }
  .trust-stat strong{ display:block; font-family:var(--display); font-size:28px; color:var(--corten); }
  .trust-stat span{ font-family:var(--stencil); font-size:11.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink-soft); }

  .review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .review-card{ background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius); padding:26px; }
  .review-stars{ color:var(--safety); font-family:var(--stencil); letter-spacing:2px; margin-bottom:12px; font-size:14px; }
  .review-card p{ font-size:14.5px; color:var(--ink); margin-bottom:16px; }
  .review-name{ font-family:var(--stencil); font-weight:600; font-size:13px; letter-spacing:0.5px; color:var(--steel); text-transform:uppercase; }
  .review-loc{ font-size:12.5px; color:var(--ink-soft); }

  @media (max-width: 900px){ .trust-strip{ grid-template-columns:1fr 1fr; } .review-grid{ grid-template-columns:1fr; } }

  /* ================= CONTACT CTA ================= */
  .contact{
    background:var(--corten); color:var(--white); position:relative; overflow:hidden;
  }
  .contact::before{
    content:""; position:absolute; inset:0;
    background-image: repeating-linear-gradient(90deg, rgba(0,0,0,0.06) 0, rgba(0,0,0,0.06) 2px, transparent 2px, transparent 16px);
    pointer-events:none;
  }
  .contact-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:56px; align-items:center; position:relative; }
  .contact h2{ color:var(--white); font-size:clamp(26px,3.4vw,36px); margin-bottom:16px; }
  .contact p{ color:rgba(255,255,255,0.88); font-size:16px; max-width:440px; margin-bottom:28px; }
  .contact-actions{ display:flex; gap:16px; flex-wrap:wrap; }
  .contact-card{
    background:var(--steel-dark); border-radius:var(--radius); padding:30px; font-size:14.5px;
  }
  .contact-card .row{ display:flex; gap:12px; margin-bottom:16px; align-items:flex-start; }
  .contact-card .row:last-child{ margin-bottom:0; }
  .contact-card .label{ font-family:var(--stencil); letter-spacing:1.5px; text-transform:uppercase; font-size:11px; color:var(--safety); display:block; margin-bottom:3px; }
  .contact-card .value{ color:var(--paper); }

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

  /* ================= FOOTER ================= */
  footer{ background:var(--steel-dark); color:#8B939B; padding:48px 0 26px; }
  .footer-grid{ display:grid; grid-template-columns:1.3fr 0.85fr 0.85fr 1fr 1fr; gap:28px; margin-bottom:36px; }
  .footer-logo{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
  .footer-logo .logo-text{ font-size:17px; }
  footer p.desc{ font-size:13.5px; line-height:1.6; max-width:280px; }
  footer h5{ font-family:var(--stencil); color:var(--paper); letter-spacing:1.5px; text-transform:uppercase; font-size:12px; margin-bottom:14px; }
  footer ul li{ margin-bottom:9px; font-size:13.5px; }
  footer ul li a:hover{ color:var(--safety); }
  .footer-bottom{
    border-top:1px solid #2B3A47; padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
    font-size:12.5px;
  }

  @media (max-width: 1000px){ .footer-grid{ grid-template-columns:1fr 1fr 1fr; } }
  @media (max-width: 640px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width: 420px){ .footer-grid{ grid-template-columns:1fr; } }

  @media (prefers-reduced-motion: reduce){
    *{ transition:none !important; }
  }

  :focus-visible{ outline:3px solid var(--safety); outline-offset:2px; }

/* ============ WooCommerce product loop styling (used on front-page.php) ============ */
.products.columns-3{
  display:grid !important;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  list-style:none;
  margin:0; padding:0;
}
.products.columns-3 li.product{
  background:var(--white);
  border:1px solid #DAD4C4;
  border-radius:var(--radius);
  overflow:hidden;
  text-align:left;
  padding:0 !important;
  list-style:none;
}
.products.columns-3 li.product a img{
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
}
.products.columns-3 li.product a.woocommerce-LoopProduct-link{
  color:inherit; display:block;
}
.products.columns-3 li.product h2,
.products.columns-3 li.product h3{
  font-family:var(--stencil); font-weight:600; font-size:17px; text-transform:none;
  letter-spacing:0; color:var(--steel); padding:18px 20px 4px; margin:0;
}
.products.columns-3 li.product .price{
  font-family:var(--display); font-size:19px; color:var(--ink);
  padding:0 20px 20px; display:block;
}
.products.columns-3 li.product .price del{ opacity:.5; font-size:15px; margin-right:8px; }
.products.columns-3 li.product .price ins{ text-decoration:none; }
.products.columns-3 li.product .button{
  display:block; margin:0 20px 20px;
  font-family:var(--stencil); font-size:12px; letter-spacing:1px; text-transform:uppercase; font-weight:600;
  background:var(--steel); color:var(--white) !important; padding:11px 14px; border-radius:2px; text-align:center;
}
.products.columns-3 li.product .button:hover{ background:var(--corten); }
.products.columns-3 li.product .onsale{
  position:absolute; top:12px; left:12px; background:var(--safety); color:var(--steel-dark);
  font-family:var(--stencil); font-weight:600; font-size:11px; letter-spacing:1px; text-transform:uppercase;
  padding:5px 10px; border-radius:2px; z-index:2;
}
.products.columns-3 li.product{ position:relative; }
.products.columns-3 li.product .star-rating{ display:none; }

@media (max-width: 900px){ .products.columns-3{ grid-template-columns:1fr 1fr; } }
@media (max-width: 620px){ .products.columns-3{ grid-template-columns:1fr; } }

/* ============ Hero photo panel + size card photos ============ */
.stack-panel{
  background:rgba(0,0,0,0.28);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:4px;
  padding:22px 22px 18px;
}
.stack-panel .stack{ padding-bottom:0; margin-bottom:10px; }

.size-media{
  aspect-ratio:4/3;
  border-radius:2px;
  background-size:cover;
  background-position:center;
  margin-bottom:18px;
  background-color:var(--paper-dim);
  border:1px solid #DAD4C4;
}

/* ================= SHOP PAGE ================= */
.shop-hero{
  background:var(--steel-dark); color:var(--paper); padding:56px 0 40px; text-align:center;
}
.shop-hero .eyebrow{ color:var(--safety); }
.shop-hero h1{ color:var(--white); font-size:clamp(28px,4vw,42px); margin:12px 0 14px; }
.shop-hero .lead{ color:#C7CDD3; max-width:640px; margin:0 auto; font-size:16px; }

.cat-pillbar{
  background:var(--steel); border-bottom:1px solid #2B3A47; position:sticky; top:66px; z-index:40;
}
.cat-pillbar-inner{
  display:flex; gap:10px; overflow-x:auto; padding:14px 24px; scrollbar-width:thin;
}
.cat-pill{
  flex-shrink:0; font-family:var(--stencil); font-size:12.5px; font-weight:600; letter-spacing:1px; text-transform:uppercase;
  color:var(--paper); opacity:.8; padding:9px 16px; border-radius:20px; border:1px solid rgba(255,255,255,0.18);
  display:flex; align-items:center; gap:6px; transition:opacity .15s, background .15s, border-color .15s;
}
.cat-pill:hover{ opacity:1; border-color:var(--safety); }
.cat-pill.active{ background:var(--corten); border-color:var(--corten); opacity:1; color:var(--white); }
.cat-pill-count{ font-size:10.5px; opacity:.75; }

.cat-tiles{ background:var(--paper); padding:64px 0; }
.cat-tile-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.cat-tile{
  display:block; background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius); overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease;
}
.cat-tile:hover{ transform:translateY(-4px); box-shadow:0 14px 28px rgba(28,43,56,0.10); }
.cat-tile-media{
  aspect-ratio:16/10; background-size:cover; background-position:center; background-color:var(--paper-dim);
  border-bottom:1px solid #DAD4C4;
}
.cat-tile-body{ padding:16px 18px; }
.cat-tile-body h3{ font-family:var(--stencil); font-weight:600; font-size:16.5px; text-transform:none; letter-spacing:0; color:var(--steel); margin-bottom:4px; }
.cat-tile-body p{ font-size:13.5px; color:var(--ink-soft); }

@media (max-width: 900px){ .cat-tile-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 560px){ .cat-tile-grid{ grid-template-columns:1fr; } }

.shop-loop{ background:var(--paper-dim); padding:56px 0 80px; }

.shop-toolbar{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px;
  margin-bottom:28px; padding-bottom:20px; border-bottom:1px solid #DAD4C4;
}
.woocommerce-result-count{
  font-family:var(--stencil); font-size:13px; letter-spacing:0.5px; color:var(--ink-soft); margin:0;
}
.woocommerce-ordering{ margin:0; }
.woocommerce-ordering select{
  font-family:var(--body); font-size:13.5px; color:var(--ink); background:var(--white);
  border:1px solid #DAD4C4; border-radius:var(--radius); padding:9px 14px; cursor:pointer;
}
.woocommerce-ordering select:focus{ outline:2px solid var(--safety); }

/* Category label injected above each product title in the loop */
.chc-cat-label{
  display:block; font-family:var(--stencil); font-size:11px; font-weight:600; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--corten); padding:16px 20px 0;
}
.products.columns-3 li.product h2,
.products.columns-3 li.product h3{ padding-top:4px; }

.shop-pagination{ margin-top:44px; text-align:center; }
.woocommerce-pagination ul.page-numbers{ display:inline-flex; gap:8px; list-style:none; }
.woocommerce-pagination .page-numbers li{ display:inline-block; }
.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span{
  display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px;
  font-family:var(--stencil); font-size:13px; font-weight:600; border-radius:var(--radius);
  border:1px solid #DAD4C4; color:var(--steel); background:var(--white);
}
.woocommerce-pagination .page-numbers .current{ background:var(--corten); border-color:var(--corten); color:var(--white); }
.woocommerce-pagination .page-numbers a:hover{ border-color:var(--corten); color:var(--corten); }

.shop-empty{ text-align:center; padding:60px 0; color:var(--ink-soft); font-size:15px; }
.shop-empty a{ color:var(--corten); font-weight:600; text-decoration:underline; }

@media (max-width: 620px){
  .shop-toolbar{ flex-direction:column; align-items:flex-start; }
}


/* ===== FIX: neutralize WooCommerce core float/percentage-width grid rules ===== */
.woocommerce ul.products.columns-3 li.product,
.woocommerce-page ul.products.columns-3 li.product,
.products.columns-3 li.product{
  width:auto !important;
  float:none !important;
  margin:0 !important;
  clear:none !important;
  min-height:0;
}
.woocommerce ul.products,
.woocommerce-page ul.products,
.products.columns-3{
  margin:0 !important;
}


/* ===== Widen shop-page content area so it isn't dwarfed by empty margin on large screens ===== */
.shop-hero .wrap,
.cat-pillbar-inner,
.cat-tiles > .wrap,
.shop-loop > .wrap{
  max-width:1600px;
}

/* ===== Request a Quote button (shop loop cards) ===== */
.products.columns-3 li.product .chc-quote-btn{
  display:block;
  margin:8px 20px 20px;
  padding:11px 14px;
  text-align:center;
  font-family:var(--stencil);
  font-size:12px;
  letter-spacing:1px;
  text-transform:uppercase;
  font-weight:600;
  background:transparent;
  color:var(--corten);
  border:1px solid var(--corten);
  border-radius:var(--radius);
  transition:background .15s ease, color .15s ease;
}
.products.columns-3 li.product .chc-quote-btn:hover{
  background:var(--corten);
  color:var(--white);
}
.products.columns-3 li.product .button{
  margin-bottom:8px;
}


/* ================= REQUEST A QUOTE PAGE ================= */
.quote-section{ background:var(--paper-dim); padding:56px 0 90px; }
.quote-wrap{ max-width:720px !important; }

.quote-product-tag{
  background:var(--white); border:1px solid #DAD4C4; border-left:4px solid var(--corten);
  border-radius:var(--radius); padding:14px 18px; margin-bottom:26px;
  font-size:14.5px; color:var(--ink-soft);
}
.quote-product-tag strong{ color:var(--steel); font-family:var(--stencil); font-weight:600; }

.quote-errors{
  background:#FBEAEA; border:1px solid #E3A9A9; border-radius:var(--radius);
  padding:14px 18px; margin-bottom:22px;
}
.quote-errors ul{ margin:0; padding-left:18px; color:#8F2020; font-size:14px; }

.quote-success{
  background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius);
  padding:40px; text-align:center;
}
.quote-success h2{ margin-bottom:10px; }
.quote-success p{ color:var(--ink-soft); }
.quote-success a{ color:var(--corten); font-weight:600; text-decoration:underline; }

.quote-form{ background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius); padding:36px; }
.quote-field{ margin-bottom:20px; }
.quote-field label{
  display:block; font-family:var(--stencil); font-weight:600; font-size:12.5px;
  letter-spacing:0.8px; text-transform:uppercase; color:var(--steel); margin-bottom:7px;
}
.quote-field input[type=text],
.quote-field input[type=email],
.quote-field input[type=tel],
.quote-field select,
.quote-field textarea{
  width:100%; font-family:var(--body); font-size:15px; color:var(--ink);
  background:var(--paper); border:1px solid #DAD4C4; border-radius:var(--radius);
  padding:12px 14px; box-sizing:border-box;
}
.quote-field input:focus,
.quote-field select:focus,
.quote-field textarea:focus{ outline:2px solid var(--safety); border-color:var(--safety); }
.quote-field textarea{ resize:vertical; }

.quote-form .btn{
  border:none; cursor:pointer; width:100%; justify-content:center; font-size:13px;
}

.chc-hp-field{
  position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden;
}


/* ================= HOMEPAGE PHOTO GALLERY ================= */
.gallery{ background:var(--paper); padding:88px 0; }
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
}
.gallery-item{
  position:relative;
  display:block;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:var(--radius);
  border:1px solid #DAD4C4;
  background:var(--paper-dim);
}
.gallery-item img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .25s ease;
}
.gallery-item:hover img{ transform:scale(1.06); }
.gallery-item-overlay{
  position:absolute; left:0; right:0; bottom:0;
  padding:10px 12px 8px;
  background:linear-gradient(0deg, rgba(18,28,37,.85), rgba(18,28,37,0));
  color:var(--white);
  font-family:var(--stencil); font-size:11px; font-weight:600; letter-spacing:0.5px;
  opacity:0; transform:translateY(6px);
  transition:opacity .2s ease, transform .2s ease;
}
.gallery-item:hover .gallery-item-overlay{ opacity:1; transform:translateY(0); }

@media (max-width: 900px){ .gallery-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width: 620px){ .gallery-grid{ grid-template-columns:repeat(2, 1fr); } }

/* ================= CONTACT PAGE ================= */
.contact-info-row{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
  margin-bottom:28px;
}
.contact-info-item{
  background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius);
  padding:16px 18px;
}
.contact-info-item .label{
  display:block; font-family:var(--stencil); font-weight:600; font-size:11px;
  letter-spacing:0.8px; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px;
}
.contact-info-item .value{
  display:block; font-size:14.5px; color:var(--steel); font-weight:600; text-decoration:none;
}
a.value:hover{ color:var(--corten); }

@media (max-width: 700px){
  .contact-info-row{ grid-template-columns:1fr; }
}

/* ================= SINGLE PRODUCT PAGE ================= */
.product-breadcrumb-bar{ background:var(--steel-dark); padding:14px 0; }
.product-breadcrumb-bar .woocommerce-breadcrumb{
  color:#9BA6AF; font-family:var(--stencil); font-size:12px; letter-spacing:0.5px; margin:0;
}
.product-breadcrumb-bar .woocommerce-breadcrumb a{ color:#C7CDD3; text-decoration:none; }
.product-breadcrumb-bar .woocommerce-breadcrumb a:hover{ color:var(--safety); }
.product-breadcrumb-bar .sep{ color:#5B6570; margin:0 2px; }

.product-page{ background:var(--paper); padding:56px 0 90px; }
.product-page-wrap .product{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:48px;
  align-items:start;
  position:relative;
}
.product-page-wrap .onsale{
  position:absolute; top:0; left:0; z-index:5;
  background:var(--safety); color:var(--ink); font-family:var(--stencil); font-weight:700;
  font-size:11px; letter-spacing:1px; text-transform:uppercase; padding:6px 14px; border-radius:0 0 var(--radius) 0;
}

.woocommerce-product-gallery{
  border:1px solid #DAD4C4; border-radius:var(--radius); overflow:hidden; background:var(--white);
}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery__image--active img{ outline:2px solid var(--corten); }
.woocommerce-product-gallery__trigger{ color:var(--steel); }

.summary.entry-summary{ padding-top:4px; }
.summary.entry-summary .product_title{
  font-family:var(--display); font-size:clamp(24px,3vw,34px); color:var(--steel); text-transform:uppercase;
  line-height:1.15; margin:0 0 14px;
}
.summary.entry-summary > .price{
  font-family:var(--display); font-size:26px; color:var(--ink); display:block; margin-bottom:22px;
}
.summary.entry-summary > .price del{ opacity:.5; font-size:19px; margin-right:10px; }
.summary.entry-summary > .price del .amount{ color:var(--ink-soft); }
.summary.entry-summary > .price ins{ text-decoration:none; color:var(--corten); }

.product-specs{ background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius); padding:20px 22px; margin-bottom:24px; }
.product-specs h3{ font-family:var(--stencil); font-size:12.5px; letter-spacing:1px; text-transform:uppercase; color:var(--ink-soft); margin:0 0 14px; }
.spec-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; }
.spec-row{ display:flex; justify-content:space-between; gap:10px; border-bottom:1px dashed #E3DFD2; padding-bottom:8px; font-size:13.5px; }
.spec-label{ color:var(--ink-soft); }
.spec-value{ color:var(--ink); font-weight:600; text-align:right; }

form.cart{ display:flex; gap:12px; align-items:center; margin-bottom:14px; flex-wrap:wrap; }
form.cart .quantity{ margin:0; }
form.cart input.qty{
  width:70px; padding:12px; border:1px solid #DAD4C4; border-radius:var(--radius); font-size:15px; text-align:center;
  font-family:var(--body); background:var(--white);
}
form.cart .single_add_to_cart_button{
  background:var(--steel); color:var(--white); border:none; padding:14px 28px; border-radius:var(--radius);
  font-family:var(--stencil); font-weight:600; font-size:13px; letter-spacing:1px; text-transform:uppercase; cursor:pointer;
}
form.cart .single_add_to_cart_button:hover{ background:var(--steel-dark); }

.chc-quote-btn-single{
  display:inline-block; margin-bottom:22px;
  padding:13px 26px; border:1px solid var(--corten); color:var(--corten); border-radius:var(--radius);
  font-family:var(--stencil); font-weight:600; font-size:13px; letter-spacing:1px; text-transform:uppercase;
  text-decoration:none; transition:background .15s ease, color .15s ease;
}
.chc-quote-btn-single:hover{ background:var(--corten); color:var(--white); }

.product_meta{ font-size:13px; color:var(--ink-soft); padding-top:14px; border-top:1px solid #E3DFD2; }
.product_meta a{ color:var(--corten); text-decoration:none; }
.product_meta a:hover{ text-decoration:underline; }

.woocommerce-tabs{ margin-top:56px; clear:both; }
.woocommerce-tabs ul.tabs{ display:flex; gap:8px; list-style:none; padding:0; margin:0; border-bottom:1px solid #DAD4C4; }
.woocommerce-tabs ul.tabs li{ margin:0; }
.woocommerce-tabs ul.tabs li a{
  display:block; padding:12px 20px; font-family:var(--stencil); font-size:13px; font-weight:600;
  letter-spacing:0.5px; text-transform:uppercase; color:var(--ink-soft); text-decoration:none;
  border:1px solid transparent; border-bottom:none; border-radius:var(--radius) var(--radius) 0 0;
}
.woocommerce-tabs ul.tabs li.active a{ color:var(--steel); background:var(--white); border-color:#DAD4C4; }
.woocommerce-Tabs-panel{
  background:var(--white); border:1px solid #DAD4C4; border-top:none; padding:28px 30px;
  border-radius:0 0 var(--radius) var(--radius);
}
.woocommerce-Tabs-panel h2{ font-family:var(--display); font-size:20px; color:var(--steel); text-transform:uppercase; margin:0 0 14px; }
.woocommerce-Tabs-panel p{ color:var(--ink-soft); line-height:1.7; font-size:15px; }

.related.products{ margin-top:64px; clear:both; }
.related.products h2{
  font-family:var(--display); font-size:24px; color:var(--steel); text-transform:uppercase; margin:0 0 24px;
}

@media (max-width: 860px){
  .product-page-wrap .product{ grid-template-columns:1fr; }
  .spec-grid{ grid-template-columns:1fr; }
}
/* ===== SINGLE PRODUCT PAGE - GRID CHILD RESET (fix WooCommerce float/width) ===== */
.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.product-page-wrap .product > .images,
.product-page-wrap .product > .summary,
.product-page-wrap div.product div.images,
.product-page-wrap div.product div.summary{
  width:auto !important;
  float:none !important;
  margin:0 !important;
  clear:none !important;
}
/* ================= FAQ / DELIVERY / SITEMAP / 404 (added by site audit) ================= */
.faq-section{ padding:56px 0 90px; }
.faq-group{ margin-bottom:40px; }
.faq-group h2{ font-size:22px; margin-bottom:18px; color:var(--steel); }
.faq-item{ background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius); margin-bottom:12px; overflow:hidden; }
.faq-item summary{ padding:16px 20px; font-family:var(--stencil); font-weight:600; font-size:15px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; color:var(--steel); }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; font-size:20px; line-height:1; color:var(--corten); transition:transform .15s ease; flex-shrink:0; }
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item .faq-answer{ padding:0 20px 18px; color:var(--ink-soft); font-size:15px; line-height:1.7; }
.faq-item .faq-answer p{ margin:0; }
.faq-cta{ text-align:center; background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius); padding:40px 30px; margin-top:20px; }
.faq-cta > div{ justify-content:center; }

.checklist{ list-style:none; padding:0; margin:16px 0 0; }
.checklist li{ padding:10px 0 10px 30px; position:relative; border-bottom:1px solid #E3DFD2; color:var(--ink); font-size:15px; }
.checklist li:last-child{ border-bottom:none; }
.checklist li::before{ content:'\2713'; position:absolute; left:0; top:10px; color:var(--corten); font-weight:700; }

.delivery-method-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:20px 0 8px; }
.delivery-method-card{ background:var(--white); border:1px solid #DAD4C4; border-radius:var(--radius); padding:24px; }
.delivery-method-card h3{ font-family:var(--stencil); font-size:16px; color:var(--steel); margin-bottom:10px; text-transform:uppercase; letter-spacing:0.5px; }
@media (max-width:700px){ .delivery-method-grid{ grid-template-columns:1fr; } }

.sitemap-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.sitemap-col h3{ font-family:var(--stencil); font-size:13px; text-transform:uppercase; letter-spacing:1px; color:var(--corten); margin-bottom:14px; border-bottom:1px solid #DAD4C4; padding-bottom:10px; }
.sitemap-col ul{ list-style:none; padding:0; margin:0; }
.sitemap-col li{ margin-bottom:9px; }
.sitemap-col a{ color:var(--ink); text-decoration:none; font-size:14.5px; }
.sitemap-col a:hover{ color:var(--corten); text-decoration:underline; }
@media (max-width:900px){ .sitemap-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .sitemap-grid{ grid-template-columns:1fr; } }

.error-404-section{ padding:110px 0 120px; text-align:center; }
.error-404-section .code{ font-family:var(--display); font-size:clamp(60px,10vw,120px); color:var(--corten); line-height:1; margin-bottom:8px; }
.error-404-section h1{ color:var(--steel); font-size:clamp(24px,3vw,32px); margin:0 0 14px; }
.error-404-section p{ color:var(--ink-soft); font-size:16px; margin:0 auto 32px; max-width:480px; }
.error-404-links{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
