/*
Theme Name: Biorenewable Energy
Theme URI: https://biorenewable.co.za
Author: Biorenewable Energy (Pty) Ltd
Description: Custom theme for the Biorenewable Energy integrated energy infrastructure website — Forecourts, Retail & Commercial, Mining, Home Solutions.
Version: 1.0
Text Domain: biorenewable-energy
*/


  :root{
    --forest:#2B4134;
    --forest-2:#375342;
    --forest-3:#213127;
    --brand-green:#4F775F;
    --ivory:#F8F4EA;
    --ivory-2:#F1EAD9;
    --gold:#C9A55E;
    --gold-dark:#A9853F;
    --gold-light:#E7D6A0;
    --ink:#16211A;
    --body:#5B655F;
    --body-invert:#D3DAD1;
    --line-ivory: rgba(22,33,26,0.14);
    --line-dark: rgba(248,244,234,0.18);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ivory) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.09  0 0 0 0 0.13  0 0 0 0 0.1  0 0 0 0.02 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
    color:var(--ink);
    font-family:'Inter',sans-serif;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }
  .serif{font-family:'Fraunces',serif;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
  ::selection{background:var(--gold); color:var(--ivory);}
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  .eyebrow{
    font-family:'Inter',sans-serif; font-size:11px; letter-spacing:0.15em; text-transform:uppercase;
    color:var(--gold-dark); font-weight:600; display:block; margin-bottom:16px;
  }
  .eyebrow.on-dark{color:var(--gold);}

  .ar{ display:inline-block; width:13px; height:13px; vertical-align:-1px; }
  .ar path{ stroke:currentColor; stroke-width:1.6; fill:none; stroke-linecap:round; stroke-linejoin:round; }

  /* ---------- BUTTONS ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:600;
    letter-spacing:0.05em; text-transform:uppercase; padding:13px 22px; border-radius:2px;
    transition:all .25s ease; white-space:nowrap;
  }
  .btn-gold{background:linear-gradient(135deg, var(--gold-light), var(--gold) 55%, var(--gold-dark)); color:#241C0C;}
  .btn-gold:hover{filter:brightness(1.06); box-shadow:0 10px 26px rgba(169,133,63,0.35);}
  .btn-line{border:1px solid var(--ink); color:var(--ink);}
  .btn-line:hover{background:var(--ink); color:var(--ivory);}
  .btn-line-inv{border:1px solid rgba(248,244,234,0.5); color:var(--ivory);}
  .btn-line-inv:hover{background:var(--ivory); color:var(--forest);}
  .link-arrow{
    display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600;
    letter-spacing:0.04em; text-transform:uppercase; color:var(--gold-dark); border-bottom:1px solid transparent; padding-bottom:3px;
    transition:border-color .2s, color .2s;
  }
  .link-arrow:hover{border-color:var(--gold-dark);}
  .link-arrow.on-dark{color:var(--gold);}
  .link-arrow.on-dark:hover{border-color:var(--gold);}
  .arr-wrap{transition:transform .25s ease; display:inline-flex;}
  .btn:hover .arr-wrap, .link-arrow:hover .arr-wrap{transform:translate(3px,-3px);}
  @media (max-width:600px){
    .btn{padding:12px 18px; font-size:11.5px;}
    section{padding:56px 0;}
    .sec-head{margin-bottom:28px;}
    .hero{min-height:82svh;}
    .hero-inner{padding-bottom:44px; padding-top:34px;}
    .proc-row{padding:18px 0;}
    .adv-cell{padding:24px 20px;}
    .cred-row{margin-top:24px;}
  }

  /* ---------- HEADER ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(248,244,234,0.94); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line-ivory);
  }
  #ev-mobility, #shop, #branded, #commercial, #home,
  #industries, #about, #contact { scroll-margin-top: 96px; }
  @media (max-width:600px){
    #ev-mobility, #shop, #branded, #commercial, #home,
    #industries, #about, #contact { scroll-margin-top: 72px; }
  }
  .nav{display:flex; align-items:center; justify-content:space-between; height:78px;}
  .logo{display:flex; align-items:center; gap:12px;}
  .logo-img{height:44px; width:auto; display:block;}
  .logo-plate{display:inline-flex; align-items:center; background:var(--ivory); padding:14px 20px; border-radius:2px;}
  .logo-plate .logo-img{height:38px;}
  nav.mainnav ul{display:flex; gap:34px; list-style:none;}
  nav.mainnav ul li a{
    font-size:11px; font-weight:600; letter-spacing:0.09em; text-transform:uppercase; color:var(--ink);
    padding-bottom:4px; border-bottom:1px solid transparent; transition:border-color .2s, color .2s;
  }
  nav.mainnav ul li a:hover{border-color:var(--gold); color:var(--gold-dark);}
  .nav-cta{font-size:11px; font-weight:600; letter-spacing:0.09em; text-transform:uppercase; color:var(--gold-dark); display:flex; align-items:center; gap:6px;}
  .nav-cta:hover{color:var(--gold);}
  @media (max-width:900px){ nav.mainnav ul{display:none;} }
  @media (max-width:600px){
    .nav{height:58px;}
    .logo-img{height:34px;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative; min-height:88svh; display:flex; align-items:flex-end;
    padding-top:78px; overflow:hidden; color:var(--ivory);
  }
  .hero-scene{position:absolute; inset:0; z-index:0;}
  .hero-scene svg{width:100%; height:100%;}
  .hero-overlay{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(33,49,39,0.32) 0%, rgba(33,49,39,0.52) 55%, rgba(33,49,39,0.92) 100%);
  }
  .hero-inner{position:relative; z-index:2; padding-bottom:64px; padding-top:48px; width:100%;}
  .hero-eyebrow{
    font-size:11px; font-weight:600; letter-spacing:0.17em; text-transform:uppercase; color:var(--gold);
    margin-bottom:22px; display:block;
  }
  .hero h1{
    font-family:'Fraunces',serif; font-weight:400; font-size:clamp(34px,5.6vw,66px); line-height:1.08;
    max-width:800px; letter-spacing:-0.01em;
  }
  .hero h1 em{font-style:italic; color:var(--gold); font-weight:400;}
  .hero p.lede{
    margin-top:22px; font-size:16.5px; line-height:1.68; color:var(--body-invert); max-width:540px; font-weight:400;
  }
  .hero-actions{display:flex; gap:16px; margin-top:32px; flex-wrap:wrap;}

  /* ---------- SECTION SHELL (compressed rhythm) ---------- */
  section{padding:84px 0;}
  .sec-dark{background:var(--forest); color:var(--ivory); box-shadow: 0 1px 0 rgba(201,165,94,0.35) inset;}
  .sec-tint{background:var(--ivory-2); box-shadow: 0 1px 0 rgba(169,133,63,0.22) inset;}
  .sec-head{max-width:640px; margin-bottom:40px;}
  .sec-head h2{
    font-family:'Fraunces',serif; font-weight:400; font-size:clamp(27px,3.6vw,44px); line-height:1.1; letter-spacing:-0.01em;
  }
  .sec-head h2 em{font-style:italic; color:var(--gold); font-weight:400;}
  .sec-head p{margin-top:16px; font-size:15px; line-height:1.7; color:var(--body); max-width:560px;}
  .sec-dark .sec-head p{color:var(--body-invert);}
  .sec-head p + p{margin-top:10px;}

  /* ---------- INTRO STRIP ---------- */
  .intro-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-ivory); border:1px solid var(--line-ivory); margin-top:36px;}
  .intro-cell{background:var(--ivory); padding:26px 22px 24px; transition:background .25s, transform .25s; position:relative; overflow:hidden;}
  .intro-cell::before{content:""; position:absolute; top:0; left:0; width:0; height:2px; background:var(--gold); transition:width .3s ease;}
  .intro-cell:hover{background:var(--ivory-2); transform:translateY(-3px);}
  .intro-cell:hover::before{width:100%;}
  .intro-cell .in-ico{width:26px; height:26px; margin-bottom:14px; opacity:0.85; transition:opacity .25s;}
  .intro-cell:hover .in-ico{opacity:1;}
  .intro-cell .in-num{font-family:'Fraunces',serif; color:var(--gold-dark); font-size:12px; margin-bottom:8px; display:block;}
  .intro-cell h4{font-size:14.5px; font-weight:600; margin-bottom:6px;}
  .intro-cell p{font-size:12.5px; color:var(--body); line-height:1.55;}
  .intro-cell .in-go{
    display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
    color:var(--gold-dark); margin-top:12px; opacity:0; transform:translateX(-4px); transition:opacity .25s, transform .25s;
  }
  .intro-cell:hover .in-go{opacity:1; transform:translateX(0);}
  @media (max-width:820px){ .intro-strip{grid-template-columns:repeat(2,1fr);} }

  /* ---------- PHOTO FRAME (placeholder for real photography) ---------- */
  .photo-frame{
    position:relative; border-radius:2px; overflow:hidden; border:1px solid var(--line-ivory);
    aspect-ratio: 16/9; display:flex; align-items:flex-end;
  }
  .photo-frame.tall{aspect-ratio:4/5;}
  .photo-frame.wide{aspect-ratio:21/9;}
  .photo-frame .pf-bg{
    position:absolute; inset:0;
    background: linear-gradient(135deg, var(--forest-2) 0%, var(--forest) 55%, var(--forest-3) 100%);
  }
  .photo-frame .pf-bg::after{
    content:""; position:absolute; inset:0;
    background: radial-gradient(60% 70% at 80% 15%, rgba(201,165,94,0.24), transparent 60%);
  }
  .photo-frame .pf-icon{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:15%; max-width:64px; opacity:0.28;
  }
  .photo-frame .pf-icon svg{width:100%; height:100%; stroke:var(--ivory); fill:none; stroke-width:1;}
  .photo-frame .pf-label{
    position:relative; z-index:2; padding:16px 20px; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--body-invert); background:linear-gradient(0deg, rgba(15,25,19,0.55), transparent);
    width:100%;
  }

  .photo-frame .pf-photo{position:absolute; inset:0; background-size:cover; background-position:center;}
  .photo-frame .pf-shade{position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,25,19,0) 55%, rgba(15,25,19,0.75) 100%);}
  .photo-split{display:grid; grid-template-columns:1fr 1fr; gap:2px;}
  .photo-split .photo-frame{aspect-ratio:4/5; border-radius:0;}
  .photo-split .tag{position:absolute; top:16px; left:16px; z-index:3; font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ivory); border:1px solid rgba(248,244,234,0.5); padding:5px 10px;}
  @media (max-width:700px){ .photo-split{grid-template-columns:1fr;} }

  /* ---------- PROCESS MINI (4-step inline, branded forecourt) ---------- */
  .mini-process{display:flex; flex-wrap:wrap; gap:0; margin-top:34px; border-top:1px solid var(--line-ivory);}
  .mini-step{flex:1 1 220px; padding:22px 24px 22px 0; border-bottom:1px solid var(--line-ivory); position:relative;}
  .mini-step:not(:last-child)::after{content:"→"; position:absolute; right:-2px; top:22px; color:var(--gold-dark); font-size:14px; display:none;}
  @media (min-width:820px){
    .mini-process{flex-wrap:nowrap;}
    .mini-step:not(:last-child)::after{display:block;}
  }
  .mini-step .ms-label{font-size:13px; font-weight:600; line-height:1.4;}
  .mini-step .ms-num{font-family:'Fraunces',serif; font-size:12px; color:var(--gold-dark); margin-bottom:8px; display:block;}

  /* ---------- APPLICATIONS LIST (Retail & Commercial) ---------- */
  .apps-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:28px;}
  .app-chip{
    font-size:12.5px; font-weight:600; letter-spacing:0.03em; padding:11px 18px; border:1px solid var(--line-ivory);
    color:var(--ink);
  }

  /* ---------- OFFER LIST (Home) ---------- */
  .offer-row{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-ivory); border:1px solid var(--line-ivory); margin-top:28px;}
  .offer-cell{background:var(--ivory); padding:20px 18px;}
  .offer-cell h4{font-size:13.5px; font-weight:600;}
  @media (max-width:700px){ .offer-row{grid-template-columns:repeat(2,1fr);} }

  /* ---------- FEATURE ROW (refined product strip, e.g. Home Energy) ---------- */
  .feature-row{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-ivory); border:1px solid var(--line-ivory); margin-top:36px;}
  .feature-cell{background:var(--ivory); padding:26px 20px; transition:background .25s;}
  .feature-cell:hover{background:var(--ivory-2);}
  .feature-cell .fc-ico{width:22px; height:22px; margin-bottom:14px; opacity:0.9;}
  .feature-cell h4{font-family:'Fraunces',serif; font-size:14.5px; font-weight:500; color:var(--ink);}
  @media (max-width:700px){ .feature-row{grid-template-columns:repeat(2,1fr);} }

  /* ---------- ENERGY INTEGRATION (3-node diagram) ---------- */
  .integ-wrap{margin-top:44px; display:grid; grid-template-columns:1fr; }
  .integ-nodes{display:flex; align-items:center; justify-content:center; gap:0; flex-wrap:wrap;}
  .integ-node{
    flex:1 1 200px; max-width:240px; text-align:center; padding:0 18px;
  }
  .integ-node .in-ico{width:38px;height:38px;margin:0 auto 16px; opacity:0.9; position:relative;}
  .integ-node h4{font-family:'Fraunces',serif; font-size:16px; font-weight:500; margin-bottom:8px; color:var(--ivory);}
  .integ-node p{font-size:12.5px; color:var(--body-invert); line-height:1.6;}
  .integ-plus{color:var(--gold); font-family:'Fraunces',serif; font-size:22px; padding:0 6px; flex:0 0 auto;}
  .integ-line{height:1px; background:linear-gradient(90deg, transparent, var(--gold) 15%, var(--gold) 85%, transparent); margin:0 0 34px; opacity:0.55;}
  @media (max-width:700px){ .integ-line{display:none;} }
  @media (max-width:700px){
    .integ-nodes{flex-direction:column; gap:28px;}
    .integ-plus{transform:rotate(90deg);}
  }

  /* ---------- WHY / ADVANTAGE GRID ---------- */
  .adv-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark); margin-top:40px; border-top:1px solid var(--line-dark); border-left:1px solid var(--line-dark);}
  .adv-cell{background:var(--forest); padding:30px 26px; border-right:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark);}
  .adv-cell h3{font-family:'Fraunces',serif; font-size:17px; font-weight:500; margin-bottom:10px; color:var(--ivory);}
  .adv-cell p{font-size:13.5px; line-height:1.65; color:var(--body-invert);}
  @media (max-width:900px){ .adv-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .adv-grid{grid-template-columns:1fr;} }

  /* ---------- PROCESS (How Biorenewable Delivers) ---------- */
  .process{margin-top:8px;}
  .proc-row{
    display:grid; grid-template-columns:96px 1fr; gap:28px; padding:26px 0; border-top:1px solid var(--line-ivory);
  }
  .proc-row:last-child{border-bottom:1px solid var(--line-ivory);}
  .proc-num{font-family:'Fraunces',serif; font-size:14px; color:var(--gold-dark); font-weight:500;}
  .proc-body h3{font-family:'Fraunces',serif; font-size:18px; font-weight:500; margin-bottom:6px;}
  .proc-body p{font-size:13.5px; line-height:1.65; color:var(--body); max-width:600px;}
  @media (max-width:600px){ .proc-row{grid-template-columns:1fr; gap:8px;} }

  /* ---------- CREDENTIALS ---------- */
  .cred-section{border-top:1px solid var(--line-ivory);}
  .cred-row{display:grid; grid-template-columns:repeat(3,1fr); margin-top:36px;}
  .cred-item{padding:0 24px; border-left:1px solid var(--line-ivory);}
  .cred-item:first-child{padding-left:0; border-left:none;}
  .cred-num{font-family:'Fraunces',serif; font-size:27px; color:var(--gold-dark); font-weight:500;}
  .cred-lbl{font-size:12px; color:var(--body); margin-top:8px; line-height:1.5;}
  @media (max-width:820px){
    .cred-row{grid-template-columns:repeat(2,1fr); row-gap:28px;}
    .cred-item:nth-child(3){padding-left:0; border-left:none;}
  }
  @media (max-width:520px){
    .cred-row{grid-template-columns:1fr; row-gap:22px;}
    .cred-item{padding-left:0; border-left:none; border-top:1px solid var(--line-ivory); padding-top:18px;}
    .cred-item:first-child{border-top:none; padding-top:0;}
  }

  /* ---------- FINAL CTA ---------- */
  .final-cta{background:var(--forest); color:var(--ivory); position:relative; overflow:hidden;}
  .final-cta .glow{position:absolute; inset:0; background:radial-gradient(60% 70% at 85% 10%, rgba(201,165,94,0.14), transparent 65%);}
  .final-cta .inner{position:relative; max-width:820px;}
  .final-cta h2{font-family:'Fraunces',serif; font-weight:400; font-size:clamp(26px,3.8vw,42px); line-height:1.15;}
  .final-cta h2 em{font-style:italic; color:var(--gold);}
  .final-cta p{margin-top:18px; color:var(--body-invert); font-size:15px; line-height:1.7; max-width:500px;}
  .final-cta .actions{display:flex; gap:18px; margin-top:32px; flex-wrap:wrap; align-items:center;}
  .final-cta .email{font-size:13px; color:var(--body-invert);}

  /* ---------- CONTACT — location cards + contact rows ---------- */
  .location-cards{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(248,244,234,0.15); margin-top:40px; border:1px solid rgba(248,244,234,0.15);}
  .location-card{background:var(--forest); padding:28px 26px;}
  .location-card .lc-ico{width:20px; height:20px; margin-bottom:16px; opacity:0.9;}
  .location-card h4{font-family:'Fraunces',serif; font-size:16px; font-weight:500; color:var(--ivory); margin-bottom:10px;}
  .location-card p{font-size:13.5px; line-height:1.65; color:var(--body-invert); margin:0;}
  @media (max-width:700px){ .location-cards{grid-template-columns:1fr;} }

  .contact-rows{display:flex; gap:36px; margin-top:30px; flex-wrap:wrap;}
  .contact-row{display:flex; align-items:center; gap:11px;}
  .contact-row .cr-ico{width:17px; height:17px; opacity:0.9; flex-shrink:0;}
  .contact-row a{color:var(--ivory); font-size:14px; text-decoration:none; border-bottom:1px solid rgba(248,244,234,0.3); padding-bottom:2px; transition:border-color .2s;}
  .contact-row a:hover{border-color:var(--gold);}

  /* ---------- FOOTER ---------- */
  footer{background:var(--forest-3); color:var(--body-invert); padding:56px 0 30px;}
  .foot-top{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom:38px; border-bottom:1px solid var(--line-dark);}
  .foot-brand p{margin-top:14px; font-size:13px; max-width:270px; line-height:1.65; color:var(--body-invert);}
  .foot-cols{display:flex; gap:48px; flex-wrap:wrap;}
  .foot-col h4{font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:15px; font-weight:600;}
  .foot-col a{display:block; font-size:13px; margin-bottom:10px; color:var(--body-invert); transition:color .2s;}
  .foot-col a:hover{color:var(--ivory);}
  .foot-bottom{padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:11.5px; color:rgba(199,208,198,0.7);}


  /* ---------- SHOP ---------- */
  .shop-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-ivory); border:1px solid var(--line-ivory); margin-top:40px;}
  .shop-card{background:var(--ivory); display:flex; flex-direction:column;}
  .shop-card .sc-photo{position:relative; aspect-ratio:4/5; overflow:hidden;}
  .shop-card .sc-photo .pf-photo{position:absolute; inset:0; background-size:cover; background-position:center;}
  .shop-card .sc-photo .pf-shade{position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,25,19,0) 55%, rgba(15,25,19,0.7) 100%);}
  .shop-card .sc-body{padding:22px 22px 26px;}
  .shop-card h3{font-family:'Fraunces',serif; font-size:18px; font-weight:500; margin-bottom:8px;}
  .shop-card p{font-size:13px; line-height:1.65; color:var(--body); margin-bottom:16px;}
  .shop-card.wide{grid-column:span 2;}
  .shop-card.wide .sc-photo{aspect-ratio:21/9;}
  @media (max-width:820px){
    .shop-grid{grid-template-columns:repeat(2,1fr);}
    .shop-card.wide{grid-column:span 2;}
  }
  @media (max-width:560px){
    .shop-grid{grid-template-columns:1fr;}
    .shop-card.wide{grid-column:span 1;}
    .shop-card .sc-photo{aspect-ratio:1/1;}
    .shop-card.wide .sc-photo{aspect-ratio:16/9;}
    .shop-card .sc-body{padding:18px 20px 22px;}
  }

  .reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ==========================================================
     HOME ENERGY SHOP LANDING PAGE — additions below extend the
     existing design system (same variables, same components)
     rather than introducing new visual language.
     ========================================================== */

  /* Shop-by-category / Shop-by-need cards reuse .intro-strip / .intro-cell
     directly (see homepage) — a 3-column variant is added here since
     "Shop by Your Need" has three cards rather than four/six. */
  .intro-strip.cols-3{grid-template-columns:repeat(3,1fr);}
  @media (max-width:820px){ .intro-strip.cols-3{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:600px){ .intro-strip.cols-3{grid-template-columns:1fr;} }

  /* Featured product cards — extends .shop-card with brand/price/meta and
     a two-button row (View Product / Add to Cart or Enquire), keeping the
     same photo treatment, typography and spacing as the existing shop-card. */
  .product-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-ivory); border:1px solid var(--line-ivory); margin-top:40px;}
  .product-card{background:var(--ivory); display:flex; flex-direction:column;}
  .product-card .sc-photo{position:relative; aspect-ratio:1/1; overflow:hidden;}
  .product-card .sc-photo .pf-photo{position:absolute; inset:0; background-size:cover; background-position:center;}
  .product-card .sc-photo .pf-shade{position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,25,19,0) 60%, rgba(15,25,19,0.55) 100%);}
  .product-card .sc-body{padding:18px 18px 22px; display:flex; flex-direction:column; flex:1;}
  .product-card .pc-brand{font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-dark); font-weight:600; margin-bottom:6px;}
  .product-card h3{font-family:'Fraunces',serif; font-size:16px; font-weight:500; margin-bottom:6px; line-height:1.3;}
  .product-card .pc-desc{font-size:12.5px; line-height:1.6; color:var(--body); margin-bottom:10px;}
  .product-card .pc-meta{font-size:11.5px; color:var(--body); margin-bottom:12px;}
  .product-card .pc-price{font-family:'Fraunces',serif; font-size:17px; color:var(--ink); margin-bottom:14px; margin-top:auto;}
  .product-card .pc-price .pc-price-note{font-family:'Inter',sans-serif; font-size:11px; color:var(--body); display:block; margin-top:2px;}
  .product-card .pc-actions{display:flex; gap:8px; flex-wrap:wrap;}
  .product-card .pc-actions a{flex:1 1 auto; text-align:center; font-size:12px; padding:10px 12px; border-radius:2px; white-space:nowrap;}
  .product-card .pc-btn-view{border:1px solid var(--line-ivory); color:var(--ink); background:transparent; transition:border-color .2s, background .2s;}
  .product-card .pc-btn-view:hover{border-color:var(--gold-dark); background:var(--ivory-2);}
  .product-card .pc-btn-add{background:var(--forest); color:var(--ivory); border:1px solid var(--forest); transition:background .2s;}
  .product-card .pc-btn-add:hover{background:var(--forest-2);}
  @media (max-width:900px){ .product-grid{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:700px){ .product-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:460px){ .product-grid{grid-template-columns:1fr;} }

  /* Quote form — new component, built on the same tokens (ivory, gold,
     Fraunces/Inter) as the rest of the site. No new colours introduced. */
  .quote-form{background:var(--ivory-2); border:1px solid var(--line-ivory); padding:40px; margin-top:36px;}
  @media (max-width:600px){ .quote-form{padding:26px 20px;} }
  .qf-row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
  @media (max-width:600px){ .qf-row{grid-template-columns:1fr;} }
  .qf-field{display:flex; flex-direction:column;}
  .qf-field label{font-size:12.5px; font-weight:600; color:var(--ink); margin-bottom:7px;}
  .qf-field .qf-optional{font-weight:400; color:var(--body); font-size:11.5px;}
  .qf-field input[type="text"],
  .qf-field input[type="email"],
  .qf-field input[type="tel"],
  .qf-field select{
    font-family:'Inter',sans-serif; font-size:14px; color:var(--ink);
    background:var(--ivory); border:1px solid var(--line-ivory); border-radius:2px;
    padding:12px 14px; outline:none; transition:border-color .2s;
  }
  .qf-field input:focus, .qf-field select:focus{border-color:var(--gold-dark);}
  .qf-pills{display:flex; flex-wrap:wrap; gap:10px;}
  .qf-pill{display:inline-flex; align-items:center; gap:7px; font-size:13px; padding:9px 14px; border:1px solid var(--line-ivory); border-radius:20px; background:var(--ivory); cursor:pointer; transition:border-color .2s, background .2s;}
  .qf-pill input{accent-color:var(--gold-dark);}
  .qf-pill:has(input:checked){border-color:var(--gold-dark); background:var(--gold-light);}
  .qf-radio-row{display:flex; gap:24px; flex-wrap:wrap;}
  .qf-radio-row label{display:inline-flex; align-items:center; gap:7px; font-size:13.5px; color:var(--body); cursor:pointer;}
  .qf-submit{margin-top:8px;}
  .qf-note{font-size:11.5px; color:var(--body); margin-top:14px;}

  /* Native <button> reset — the quote form's submit button uses .btn .btn-gold
     (the same classes as the site's <a> buttons); this neutralises default
     browser button chrome (border/font/cursor) without touching the
     background, which .btn-gold still controls. */
  button.btn{border:none; font-family:'Inter',sans-serif; cursor:pointer; appearance:none; -webkit-appearance:none;}

  /* Trust strip reuses .mini-process / .mini-step from the homepage
     (see Forecourts / Mining sections) — no new markup needed for this. */

  /* ==========================================================
     MINING & INDUSTRIAL ENERGY LANDING PAGE — two small additions.
     Everything else on this page reuses existing components:
     .intro-strip/.intro-cell, .mini-process/.mini-step,
     .integ-nodes (on .sec-dark, per its existing colour rules),
     .photo-frame, .final-cta, .quote-form.
     ========================================================== */

  /* "Who We Work With" — two restrained columns (Mining / Industrial) */
  .work-with-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line-ivory); border:1px solid var(--line-ivory); margin-top:36px;}
  .work-with-col{background:var(--ivory); padding:32px 30px;}
  .work-with-col h3{font-family:'Fraunces',serif; font-size:19px; font-weight:500; margin-bottom:16px;}
  .work-with-col ul{list-style:none;}
  .work-with-col li{font-size:14px; color:var(--body); padding:9px 0; border-top:1px solid var(--line-ivory);}
  .work-with-col li:first-of-type{border-top:none;}
  @media (max-width:700px){ .work-with-grid{grid-template-columns:1fr;} }

  /* Funding callout — a restrained highlighted strip, not a full CTA block */
  .funding-callout{background:var(--ivory-2); border-left:3px solid var(--gold-dark); padding:28px 32px; margin-top:36px;}
  .funding-callout h3{font-family:'Fraunces',serif; font-size:19px; font-weight:500; margin-bottom:10px; max-width:520px;}
  .funding-callout p{font-size:14px; line-height:1.7; color:var(--body); max-width:560px; margin-bottom:16px;}
  @media (max-width:600px){ .funding-callout{padding:22px 20px;} }
