/*
Theme Name: Grow Machines 1.73
Theme URI: https://growmachines.co.za/
Author: Grow Machines
Description: A lightweight, responsive WordPress theme for Grow Machines.
Version: 1.73.0
Text Domain: grow-machines
*/

:root{--gm-ink:#202a29;--gm-ink-soft:#4a5956;--gm-green:#009f50;--gm-green-dark:#007b3e;--gm-mint:#eaf7ef;--gm-line:#cfe4d7;--gm-white:#fff;--gm-radius:18px;--gm-shadow:0 12px 30px rgba(20,51,39,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--gm-ink);font-family:Arial,sans-serif;font-size:16px;line-height:1.5;background:var(--gm-white)}img{max-width:100%;height:auto;display:block}a{color:inherit}.screen-reader-text{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.screen-reader-text:focus{left:1rem;top:1rem;width:auto;height:auto;padding:.75rem;background:#fff;z-index:100;color:var(--gm-ink)}
.gm-site-notice{margin:0;padding:.7rem 1.25rem;background:#fff2bd;color:#5a4300;border-bottom:1px solid #e1bd42;text-align:center;font-size:.95rem;font-weight:700;line-height:1.4}
.gm-header{min-height:82px;background:#29302f;color:#fff;display:flex;align-items:center;gap:2rem;padding:0 clamp(1.25rem,4vw,4.5rem);position:sticky;top:0;z-index:20}.gm-brand{display:flex;align-items:center;gap:.65rem;color:#fff;text-decoration:none;line-height:1}.gm-brand-mark{background:var(--gm-green);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:.68rem;font-weight:800}.gm-brand strong,.gm-brand small{display:block;letter-spacing:.1em}.gm-brand strong{font-size:.85rem}.gm-brand small{font-size:.55rem;margin-top:.2rem}.gm-menu{display:flex;gap:1.3rem;flex:1;align-items:center}.gm-menu ul{display:flex;gap:1.3rem;list-style:none;margin:0;padding:0}.gm-menu a{color:#f2f6f4;text-decoration:none;font-size:.88rem;font-weight:650}.gm-menu a:hover,.gm-menu .current-menu-item>a{color:#55d88d}.gm-header-actions{display:flex;gap:.7rem;align-items:center}.gm-button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:.75rem 1.25rem;border-radius:6px;font-weight:750;text-decoration:none;border:0;cursor:pointer}.gm-button-primary{background:var(--gm-green);color:#fff}.gm-button-primary:hover{background:var(--gm-green-dark)}.gm-button-secondary{border:1px solid var(--gm-green);color:var(--gm-green);background:#fff}.gm-mobile-menu{display:none}
.gm-hero{display:grid;grid-template-columns:minmax(360px,.88fr) minmax(420px,1.12fr);min-height:520px;background:var(--gm-mint)}.gm-hero-copy{padding:clamp(3rem,7vw,7rem) clamp(1.5rem,6vw,7rem);display:flex;flex-direction:column;justify-content:center}.gm-eyebrow{color:var(--gm-green-dark);font-size:.78rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;margin:0 0 .8rem}.gm-hero h1,.gm-section h2{font-size:clamp(2.25rem,4vw,4.5rem);line-height:1.05;letter-spacing:-.04em;margin:0;max-width:11ch}.gm-hero-copy>p:not(.gm-eyebrow){font-size:clamp(1.04rem,1.6vw,1.35rem);color:var(--gm-ink-soft);max-width:33rem;margin:1.5rem 0 2rem}.gm-hero-actions{display:flex;gap:.8rem;flex-wrap:wrap}.gm-hero-image{min-height:360px;background:#244b34}.gm-hero-image img{height:100%;width:100%;object-fit:cover}.gm-section{padding:clamp(4rem,8vw,8rem) clamp(1.25rem,8vw,10rem)}.gm-section-intro{max-width:47rem}.gm-section-intro h2{font-size:clamp(2rem,3.3vw,3.3rem);max-width:19ch}.gm-section-intro>p:last-child{color:var(--gm-ink-soft);font-size:1.1rem;max-width:43rem}.gm-goal-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-top:3rem}.gm-goal-card{min-height:275px;border:1px solid var(--gm-line);border-radius:var(--gm-radius);padding:1.2rem;display:flex;flex-direction:column;justify-content:flex-end;gap:.85rem;color:#fff;text-decoration:none;position:relative;overflow:hidden;background:#35694b;background-size:cover;background-position:center;box-shadow:var(--gm-shadow)}.gm-goal-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(11,39,27,.88))}.gm-goal-card>*{position:relative}.gm-goal-card img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;z-index:0}.gm-goal-number{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e7f7ed;color:var(--gm-green-dark);font-size:.76rem;font-weight:800;margin-bottom:auto;z-index:1}.gm-goal-content{z-index:1}.gm-goal-content strong{display:block;line-height:1.12;font-size:1.08rem}.gm-goal-content small{display:block;line-height:1.35;margin-top:.55rem;font-size:.82rem}.gm-goal-link{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#83e7ad;z-index:1}.gm-tint{background:#f4fbf6}.gm-system-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.5rem}.gm-system-card{background:#fff;border:1px solid var(--gm-line);border-radius:var(--gm-radius);padding:1.5rem;box-shadow:var(--gm-shadow)}.gm-system-card span{color:var(--gm-green-dark);font-weight:800;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.gm-system-card h3{font-size:1.35rem;line-height:1.15;margin:.85rem 0}.gm-system-card p{color:var(--gm-ink-soft)}.gm-system-card a{color:var(--gm-green-dark);font-weight:800;text-decoration:none}.gm-proof{display:grid;grid-template-columns:1fr 1fr;gap:3rem;background:#24312e;color:#fff}.gm-proof .gm-eyebrow{color:#83e7ad}.gm-proof h2{max-width:14ch}.gm-proof>p{align-self:end;font-size:1.1rem;color:#d9e6df;max-width:37rem}.gm-resource-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.5rem}.gm-resource-grid a{padding:1.4rem;border-bottom:3px solid var(--gm-green);background:#fff;box-shadow:var(--gm-shadow);color:var(--gm-ink);font-weight:800;text-decoration:none}.gm-contact{background:var(--gm-mint);display:flex;justify-content:space-between;gap:2rem;align-items:center}.gm-contact h2{max-width:16ch}.gm-contact>div>p:last-child{color:var(--gm-ink-soft);max-width:40rem}.gm-footer{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2rem;padding:3.2rem clamp(1.25rem,8vw,10rem);background:#29302f;color:#e9f4ec;font-size:.9rem}.gm-footer p{margin:.75rem 0 0;color:#bdd3c4;max-width:20rem}.gm-footer-brand strong{display:block;letter-spacing:.12em;font-size:.9rem}.gm-footer-brand span{display:block;margin:.35rem 0 0;color:#83e7ad}.gm-footer-links{display:grid;align-content:start;gap:.55rem}.gm-footer-links strong{color:#83e7ad;font-size:.73rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.2rem}.gm-footer-links a{color:#e9f4ec;text-decoration:none}.gm-footer-links a:hover{color:#83e7ad}.gm-footer-legal{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:.55rem;font-size:.82rem}.gm-page{max-width:72rem;margin:0 auto;padding:4rem 1.25rem 6rem}.gm-page h1{font-size:clamp(2.25rem,4vw,4.25rem);line-height:1.08}.gm-page a{color:var(--gm-green-dark)}
@media(max-width:1180px){.gm-menu{display:none}.gm-mobile-menu{display:block;margin-left:auto;position:relative}.gm-mobile-menu summary{list-style:none;cursor:pointer;background:#009f50;border-radius:6px;padding:.7rem 1rem;font-weight:750}.gm-mobile-menu summary::-webkit-details-marker{display:none}.gm-mobile-menu nav{position:absolute;right:0;top:calc(100% + .5rem);min-width:245px;padding:1rem;background:#29302f;border:1px solid #4b5753;border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.25)}.gm-mobile-menu ul{display:grid;gap:.8rem;list-style:none;margin:0;padding:0}.gm-mobile-menu a{color:#fff;text-decoration:none;font-weight:700}.gm-goal-grid{grid-template-columns:repeat(3,1fr)}.gm-goal-card{min-height:230px}}@media(max-width:760px){.gm-header{min-height:66px;padding:0 1rem}.gm-header-actions{display:none}.gm-hero{grid-template-columns:1fr}.gm-hero-copy{padding:3.4rem 1.4rem 1rem}.gm-hero-image{height:300px}.gm-hero h1{font-size:3rem}.gm-hero-actions{display:grid;grid-template-columns:1fr}.gm-section{padding:4rem 1.15rem}.gm-section-intro h2{font-size:2.2rem}.gm-goal-grid{grid-template-columns:1fr;gap:.75rem;margin-top:2rem}.gm-goal-card{min-height:0;padding:1.05rem;display:grid;grid-template-columns:38px 1fr auto;align-items:center;background:#fff;color:var(--gm-ink);box-shadow:none}.gm-goal-card:before,.gm-goal-card img{display:none}.gm-goal-number{margin:0;width:34px;height:34px}.gm-goal-content small{display:none}.gm-goal-content strong{font-size:1rem;line-height:1.2}.gm-goal-link{color:var(--gm-green-dark);font-size:.72rem}.gm-system-grid,.gm-resource-grid{grid-template-columns:1fr}.gm-proof{grid-template-columns:1fr;gap:1.3rem}.gm-proof>p{margin:0}.gm-contact{display:block}.gm-contact .gm-button{margin-top:1rem;width:100%}.gm-footer{grid-template-columns:1fr;padding:2.5rem 1.15rem}.gm-page{padding-top:2.5rem}}

/* Homepage project-support copy. */
.gm-proof-copy{align-self:center;max-width:37rem;color:#d9e6df;font-size:1.1rem}.gm-proof-copy p{margin:0 0 1.25rem}.gm-proof-copy .gm-button{margin-top:.5rem}

/* Homepage rhythm: native document scrolling; sections may grow with their content. */
html:has(.gm-home){scroll-padding-top:82px}
.gm-home .gm-hero h1{max-width:none;font-size:clamp(2.5rem,3.7vw,3.5rem);line-height:1.08}
.gm-home .gm-section h2{max-width:27ch;font-size:clamp(1.85rem,2.6vw,2.65rem);line-height:1.12}
.gm-home .gm-section{padding:clamp(2rem,4vw,3.5rem) clamp(1.25rem,8vw,10rem)}
.gm-home .gm-section-intro{max-width:60rem}
.gm-home .gm-system-grid{gap:1rem;margin-top:1.5rem}
.gm-home .gm-system-card{display:flex;flex-direction:column;padding:1.2rem}
.gm-home .gm-system-card h3{font-size:1.2rem;line-height:1.2;margin:.6rem 0}
.gm-home .gm-system-card p{font-size:1rem;line-height:1.45;margin:.3rem 0 .8rem}
.gm-home .gm-system-card a{margin-top:auto}
.gm-home .gm-proof-copy{font-size:1rem;line-height:1.55}
.gm-home .gm-goal-grid{margin-top:1.5rem}
.gm-home .gm-goal-card{isolation:isolate}
.gm-home .gm-goal-card::before{z-index:1;background:linear-gradient(180deg,rgba(11,39,27,.08),rgba(11,39,27,.92))}
.gm-home .gm-goal-number,.gm-home .gm-goal-content,.gm-home .gm-goal-link{z-index:2}
.gm-home .gm-goal-content strong{font-size:1.05rem;line-height:1.2}
.gm-home .gm-goal-content small{font-size:.9rem;line-height:1.4}
@media(min-width:1181px) and (min-height:600px){
  html:has(.gm-home){scroll-snap-type:y proximity}
  .gm-home>section{scroll-snap-align:start;min-height:calc(100svh - 82px);align-content:center}
  .gm-home>.gm-section{padding-top:1.5rem;padding-bottom:1.5rem}
  .gm-home .gm-hero-copy{padding-top:2rem;padding-bottom:2rem}
  .gm-home .gm-hero-image{min-height:0}
  .gm-home .gm-hero-copy>p:not(.gm-eyebrow){font-size:1.15rem;margin:1.25rem 0 1.75rem}
  .gm-home .gm-system-grid{gap:.75rem;margin-top:1.25rem}
  .gm-home .gm-system-card{padding:1rem 1.15rem}
  .gm-home .gm-system-card h3{font-size:1.1rem}
  .gm-home .gm-system-card p{font-size:.95rem;margin:.2rem 0 .65rem}
  .gm-home .gm-goal-card{min-height:250px;padding:1rem}
  .gm-home .gm-contact{min-height:0;padding-top:3rem;padding-bottom:3rem}
  body:has(.gm-home) .gm-footer{scroll-snap-align:end}
}
@media(max-width:760px){
  html:has(.gm-home){scroll-padding-top:66px;scroll-snap-type:none}
  .gm-home .gm-section{padding:2.75rem 1.15rem}
  .gm-home .gm-hero-copy{padding:2.75rem 1.4rem 2rem}
  .gm-home .gm-hero h1{font-size:2.75rem}
  .gm-home .gm-section h2{font-size:1.9rem}
  .gm-home .gm-goal-card{min-height:0}
  .gm-home .gm-goal-content strong{font-size:1rem}
}
@media(prefers-reduced-motion:reduce){
  html:has(.gm-home){scroll-behavior:auto;scroll-snap-type:none}
}

/* Eight product routes in two compact desktop rows; never clip additional content. */
@media(min-width:1181px){
  .gm-home .gm-system-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .gm-home #systems-heading{max-width:36ch;font-size:clamp(1.8rem,2.4vw,2.3rem)}
  .gm-home .gm-system-card{padding:.95rem}
  .gm-home .gm-system-card h3{font-size:1.05rem}
  .gm-home .gm-system-card p{font-size:.9rem;line-height:1.4}
  .gm-home .gm-system-card a{font-size:.9rem}
}

/* Small identification photos beside the product names. */
.gm-home .gm-system-title{display:flex;align-items:center;gap:.65rem;margin:.55rem 0}
.gm-home .gm-system-title h3{flex:1;min-width:0;margin:0;overflow-wrap:break-word}
.gm-home .gm-system-thumb{position:relative;flex:0 0 58px;width:58px;height:58px;border-radius:8px;overflow:hidden;background:#eaf7ef}
.gm-home .gm-system-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.gm-home .gm-system-thumb small{position:absolute;bottom:0;left:0;right:0;background:rgba(20,40,30,.8);color:#fff;text-align:center;font-size:9px;line-height:1.5;font-weight:600;letter-spacing:0}
.gm-home .gm-system-thumb-solar{display:grid;place-items:center;color:#007b3e;font-size:2rem}
@media(min-width:1181px){
  .gm-home .gm-system-title h3{font-size:1rem}
  .gm-home .gm-system-card>span{font-size:.7rem;letter-spacing:.07em}
}
@media(max-width:760px){
  .gm-home .gm-system-thumb{flex-basis:64px;width:64px;height:64px}
  .gm-home .gm-system-title h3{font-size:1.15rem}
}

/* Supplied Grow Machines identity. */
.gm-brand-logo{display:block;width:66px;height:66px;object-fit:contain;flex-shrink:0}
@media(max-width:760px){.gm-brand-logo{width:52px;height:52px}}

/* Navigation legibility with the Services route. */
.gm-menu a{font-size:1rem;font-weight:650}
.gm-menu ul{gap:1.1rem}
.gm-mobile-menu nav a{font-size:1rem}
@media(min-width:1181px) and (max-width:1280px){
  .gm-header{gap:1rem}
  .gm-menu a{font-size:.95rem}
  .gm-menu ul{gap:.75rem}
}

/* Hero introduction: more prominent and readable. */
.gm-home .gm-hero-copy>.gm-eyebrow{font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.4;letter-spacing:.07em;font-weight:800;color:#006b36;margin-bottom:1rem}


/* Live text wordmark with a geometric industrial typeface. */
.gm-home .gm-section .gm-eyebrow{font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.4;letter-spacing:.07em;font-weight:800;color:#006b36;margin-bottom:.85rem}
.gm-home .gm-proof .gm-eyebrow{color:#83e7ad}
@media(min-width:1181px) and (max-width:1360px){
  .gm-header{gap:1rem}
  .gm-menu ul{gap:.75rem}
}
@media(max-width:760px){
    }

.gm-brand-text{display:block;min-width:126px;font-family:Bahnschrift,"Arial Black",Arial,sans-serif;text-transform:uppercase}
.gm-brand-text strong{font-size:1.8rem;font-weight:800;letter-spacing:.09em;line-height:1}
.gm-brand-text small{font-size:.86rem;font-weight:700;letter-spacing:.19em;line-height:1.1;margin-top:.25rem}
@media(max-width:760px){.gm-brand-text{min-width:106px}.gm-brand-text strong{font-size:1.5rem}.gm-brand-text small{font-size:.72rem}}

/* Planning and production: approved team illustration, with full uncropped framing. */
.gm-home .gm-proof-with-image{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(1.5rem,3vw,3rem);align-items:center}
.gm-proof-image{margin:0;border-radius:18px;overflow:hidden;border:1px solid #496057;box-shadow:0 16px 40px rgba(0,0,0,.2)}
.gm-proof-image img{display:block;width:100%;height:auto}
.gm-proof-content{min-width:0}
.gm-home .gm-proof-content h2{margin-bottom:1.25rem;color:#fff;font-size:clamp(1.75rem,2.3vw,2.35rem);max-width:25ch}
@media(max-width:960px){.gm-home .gm-proof-with-image{grid-template-columns:1fr}.gm-proof-content{max-width:44rem}.gm-proof-image{max-width:52rem}}

/* Local geometric wordmark font; OFL licence included with the font. */
@font-face{font-family:GMOrbitron;src:url('assets/fonts/Orbitron.ttf') format('truetype');font-weight:400 900;font-style:normal;font-display:swap}
.gm-brand-text strong{font-family:GMOrbitron,"Arial Black",Arial,sans-serif;font-size:1.4rem;font-weight:800;line-height:1.1;letter-spacing:.065em}
@media(max-width:760px){.gm-brand-text strong{font-size:1.2rem}}
/* Resource photographs retain visible titles and the existing destinations. */
.gm-home .gm-resource-grid{gap:1rem;margin-top:1.5rem}
.gm-home .gm-resource-card{display:flex;flex-direction:column;padding:0;border-radius:12px 12px 0 0;overflow:hidden;border-bottom:3px solid var(--gm-green)}
.gm-resource-card img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.gm-resource-training img{object-position:85% center}
.gm-resource-card span{display:block;padding:1rem 1.1rem;line-height:1.35;flex:1}
.gm-resource-card:hover{box-shadow:0 12px 30px rgba(20,51,39,.15)}
.gm-resource-card:focus-visible{outline:3px solid var(--gm-green-dark);outline-offset:4px}
/* Project enquiry: complementary growing image beside the existing invitation. */
.gm-home .gm-contact-with-image{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center}
.gm-project-copy{min-width:0}
.gm-project-copy p:not(.gm-eyebrow){color:var(--gm-ink-soft);max-width:40rem;margin:1rem 0 1.5rem}
.gm-project-image{margin:0;border-radius:18px;overflow:hidden;box-shadow:var(--gm-shadow)}
.gm-project-image img{display:block;width:100%;height:auto}
@media(min-width:761px) and (max-width:960px){.gm-home .gm-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.gm-home .gm-contact-with-image{grid-template-columns:1fr}.gm-project-copy .gm-button{margin-top:0}.gm-resource-card img{aspect-ratio:2/1}}

/* Original brochure covers: exact artwork, never AI-recreated lettering. */
.gm-brochure-covers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;padding:10px;background:#e2efdf;aspect-ratio:3/2;overflow:hidden}
.gm-resource-card .gm-brochure-covers img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(20,51,39,.18))}
.gm-resource-card img[src*="resource-planning-real"]{object-position:center 60%}
@media(max-width:760px){.gm-brochure-covers{aspect-ratio:2/1}}

/* Image IDs for local review; labels remain separate from the image pixels. */
[data-gm-image]{position:relative}
[data-gm-image]::after{content:attr(data-gm-image);position:absolute;right:8px;top:8px;z-index:5;background:rgba(20,40,30,.9);color:#fff;padding:3px 6px;border-radius:4px;font:700 10px/1.3 Arial,sans-serif;letter-spacing:.02em;pointer-events:none}
.gm-resource-media{overflow:hidden}
.gm-resource-training .gm-resource-media img{object-position:85% center}
.gm-resource-media img[src*="GM-IMG-020"]{object-position:center 60%}

/* GM-023: original office panel; unaltered real system photo with people-only alpha layer. */
.gm-proof-diptych{display:grid;grid-template-columns:3fr 4fr;gap:3px;background:#24312e}
.gm-office-panel,.gm-hallelujah-panel{position:relative;min-width:0;overflow:hidden}
.gm-office-panel{aspect-ratio:1}
.gm-proof-diptych .gm-office-panel img{position:absolute;top:0;left:0;width:200%;max-width:none;height:auto}
.gm-hallelujah-panel{aspect-ratio:4/3}
.gm-proof-diptych .gm-hallelujah-photo{width:100%;height:auto;display:block}
.gm-proof-diptych .gm-hallelujah-people{position:absolute;left:4%;bottom:0;width:92%;height:92%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 2px 2px rgba(0,0,0,.12))}




/* Products navigation exposes the established project-power route. */
.gm-menu li{position:relative}
.gm-menu .sub-menu{display:none;position:absolute;top:calc(100% + .65rem);left:-.8rem;min-width:220px;padding:.65rem;background:#29302f;border:1px solid #4b5753;border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.25);z-index:30}
.gm-menu li:hover>.sub-menu,.gm-menu li:focus-within>.sub-menu{display:grid;gap:.15rem}
.gm-menu .sub-menu a{display:block;padding:.55rem .7rem;white-space:nowrap}
@media(max-width:1180px){.gm-mobile-menu .sub-menu{display:grid;gap:.45rem;margin:.45rem 0 0 .8rem;padding:0}.gm-mobile-menu .sub-menu a{font-size:.92rem;color:#d9e6df}}







/* Keep the Products dropdown connected to its trigger so submenu links remain reachable. */
.gm-menu .sub-menu{top:100%}

