/*
Theme Name: Icebo Enviro Projects
Theme URI: https://iceboenviro.co.za
Author: Icebo Enviro Projects
Author URI: https://iceboenviro.co.za
Description: Professional environmental consultancy theme. Elementor-compatible, fully responsive, mobile-first. Afzelia-style alternating image/text service layout with autoplay hero slider.
Version: 3.0.0
Requires at least: 6.0
Tested up to: 6.9.4
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: icebo
Tags: environmental, business, custom-menu, featured-images, full-width-template, custom-logo, elementor
*/
:root{
--c-green-dk:#1a5c2a;--c-green-md:#2a7d3e;--c-green-br:#2db54b;--c-green-lt:#e8f5ec;
--c-gold:#c9a600;--c-gold-br:#f0c800;
--c-black:#0d0d0d;--c-charcoal:#1c1c1c;--c-dark:#2d2d2d;--c-mid:#555;
--c-light:#f4f6f3;--c-border:#dce8de;--c-white:#fff;
--ff-display:'Playfair Display',Georgia,serif;
--ff-body:'Source Sans 3','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
--fs-xs:clamp(.7rem,1.5vw,.75rem);--fs-sm:clamp(.8rem,2vw,.875rem);
--fs-base:clamp(.9rem,2.2vw,1rem);--fs-md:clamp(1rem,2.5vw,1.1rem);
--fs-lg:clamp(1.1rem,2.8vw,1.25rem);--fs-xl:clamp(1.3rem,3.2vw,1.5rem);
--fs-2xl:clamp(1.5rem,4vw,1.875rem);--fs-3xl:clamp(1.8rem,5vw,2.4rem);
--fs-4xl:clamp(2rem,6vw,3.2rem);
--container:1200px;--radius-sm:3px;--radius-md:6px;--radius-lg:12px;
--shadow-sm:0 1px 4px rgba(0,0,0,.08);--shadow-md:0 4px 16px rgba(0,0,0,.10);--shadow-lg:0 8px 32px rgba(0,0,0,.14);
--ease:.22s ease;--touch-min:44px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--ff-body);font-size:var(--fs-base);font-weight:400;line-height:1.75;color:var(--c-dark);background:var(--c-white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--c-green-md);text-decoration:none;transition:color var(--ease)}a:hover{color:var(--c-green-dk)}
ul,ol{list-style:none}
h1,h2,h3,h4,h5,h6{font-family:var(--ff-display);font-weight:700;line-height:1.2;color:var(--c-green-dk)}
p{margin-bottom:1rem}p:last-child{margin-bottom:0}
/* LAYOUT */
.container{max-width:var(--container);margin-inline:auto;padding-inline:clamp(1rem,4vw,1.5rem);width:100%}
.section-pad{padding-block:clamp(3rem,8vw,5rem)}
.section-pad-sm{padding-block:clamp(2rem,5vw,3rem)}
.section-label{display:inline-block;font-size:var(--fs-xs);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-green-md);margin-bottom:.75rem}
.section-title{font-family:var(--ff-display);font-size:var(--fs-3xl);color:var(--c-green-dk);margin-bottom:1rem;line-height:1.2}
.section-desc{font-size:var(--fs-md);color:var(--c-mid);max-width:640px;line-height:1.85}
/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--ff-body);font-size:var(--fs-sm);font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:.75rem 1.5rem;min-height:var(--touch-min);border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;transition:all var(--ease);text-decoration:none;line-height:1;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.btn-primary{background:var(--c-gold);color:var(--c-black);border-color:var(--c-gold)}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--c-gold-br);border-color:var(--c-gold-br);color:var(--c-black);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-green{background:var(--c-green-dk);color:var(--c-white);border-color:var(--c-green-dk)}
.btn-green:hover,.btn-green:focus-visible{background:var(--c-green-md);border-color:var(--c-green-md);color:var(--c-white)}
.btn-outline{background:transparent;color:var(--c-white);border-color:rgba(255,255,255,.55)}
.btn-outline:hover,.btn-outline:focus-visible{background:rgba(255,255,255,.1);border-color:var(--c-white);color:var(--c-white)}
.btn-outline-green{background:transparent;color:var(--c-green-md);border-color:var(--c-green-md)}
.btn-outline-green:hover{background:var(--c-green-md);color:var(--c-white)}
:focus-visible{outline:3px solid var(--c-gold-br);outline-offset:3px;border-radius:2px}
:focus:not(:focus-visible){outline:none}
/* TOP BAR */
#topbar{background:var(--c-green-dk);padding:7px 0;font-size:var(--fs-xs);color:rgba(255,255,255,.82)}
#topbar .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
#topbar a{color:rgba(255,255,255,.82)}#topbar a:hover{color:var(--c-gold-br)}
.topbar-right{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.topbar-right .bbbee{background:var(--c-gold);color:var(--c-black);font-weight:700;padding:2px 8px;border-radius:2px;font-size:10px;letter-spacing:1px;text-transform:uppercase}
/* HEADER */
#masthead{background:var(--c-white);border-bottom:3px solid var(--c-green-br);position:sticky;top:0;z-index:9999;box-shadow:var(--shadow-md);transition:box-shadow var(--ease)}
#masthead.scrolled{box-shadow:0 4px 24px rgba(0,0,0,.14)}
#masthead .container{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:1rem}
.site-branding{flex-shrink:0}
.site-branding a{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:var(--touch-min)}
.site-logo,.custom-logo{height:clamp(44px,7vw,60px);width:auto;object-fit:contain;background:transparent}
.menu-toggle{display:none;background:none;border:2px solid var(--c-green-md);color:var(--c-green-md);padding:0;width:var(--touch-min);height:var(--touch-min);cursor:pointer;border-radius:var(--radius-sm);font-size:1.2rem;line-height:1;flex-shrink:0;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:all var(--ease)}
.menu-toggle:hover{background:var(--c-green-dk);border-color:var(--c-green-dk);color:var(--c-white)}
#primary-navigation{flex:1;display:flex;justify-content:flex-end;align-items:center}
#primary-menu{display:flex;align-items:center;gap:2px;list-style:none;flex-wrap:nowrap}
#primary-menu>li{position:relative}
#primary-menu>li>a{display:flex;align-items:center;font-size:clamp(11px,1.4vw,13px);font-weight:600;color:var(--c-dark);padding:.5rem .75rem;min-height:var(--touch-min);border-radius:var(--radius-sm);letter-spacing:.3px;transition:all var(--ease);white-space:nowrap}
#primary-menu>li>a:hover,#primary-menu>li.current-menu-item>a,#primary-menu>li.current-menu-ancestor>a{color:var(--c-green-md);background:var(--c-green-lt)}
#primary-menu .sub-menu{position:absolute;top:calc(100% + 4px);left:0;background:var(--c-white);border:1px solid var(--c-border);border-top:3px solid var(--c-green-br);box-shadow:var(--shadow-lg);min-width:240px;z-index:1000;opacity:0;visibility:hidden;transform:translateY(-6px);transition:all var(--ease);border-radius:0 0 var(--radius-md) var(--radius-md)}
#primary-menu li:hover>.sub-menu,#primary-menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
#primary-menu .sub-menu li a{display:flex;align-items:center;padding:.65rem 1rem;min-height:var(--touch-min);font-size:var(--fs-sm);color:var(--c-mid);border-bottom:1px solid rgba(0,0,0,.05);transition:all var(--ease)}
#primary-menu .sub-menu li:last-child a{border-bottom:none}
#primary-menu .sub-menu li a:hover{background:var(--c-light);color:var(--c-green-dk);padding-left:1.25rem}
.menu-item-cta>a{background:var(--c-green-md)!important;color:var(--c-white)!important;border-radius:var(--radius-sm)!important;margin-left:6px}
.menu-item-cta>a:hover{background:var(--c-green-dk)!important;color:var(--c-white)!important}
/* SLIDER */
#hero-slider{position:relative;width:100%;overflow:hidden;background:var(--c-green-dk)}
.slider-track{display:flex;transition:transform .7s cubic-bezier(.4,0,.2,1);will-change:transform}
.slide{min-width:100%;position:relative;height:clamp(360px,60vw,620px);overflow:hidden;flex-shrink:0}
.slide-img-wrap{position:absolute;inset:0;overflow:hidden}
.slide-img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.slide-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(26,92,42,.92) 0%,rgba(15,50,25,.78) 55%,rgba(10,35,18,.65) 100%)}
.slide-content{position:absolute;inset:0;display:flex;align-items:center;z-index:2}
.slide-inner{width:100%}
.slide-tag{display:inline-block;background:rgba(201,166,0,.2);color:var(--c-gold-br);border:1px solid rgba(201,166,0,.45);font-size:clamp(9px,1.5vw,11px);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;padding:4px 12px;border-radius:2px;margin-bottom:.85rem}
.slide-title{font-family:var(--ff-display);font-size:var(--fs-4xl);font-weight:700;color:var(--c-white);line-height:1.15;margin-bottom:.9rem;max-width:700px}
.slide-title em{font-style:normal;color:var(--c-gold-br)}
.slide-sub{font-size:var(--fs-md);color:rgba(255,255,255,.82);font-weight:300;max-width:560px;margin-bottom:1.75rem;line-height:1.85}
.slide-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}
.slider-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.4);color:var(--c-white);width:clamp(38px,5vw,52px);height:clamp(38px,5vw,52px);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:all var(--ease);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);-webkit-tap-highlight-color:transparent}
.slider-btn:hover,.slider-btn:focus-visible{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-black)}
.slider-prev{left:clamp(10px,2.5vw,24px)}.slider-next{right:clamp(10px,2.5vw,24px)}
.slider-dots{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:10}
.slider-dot{width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,.4);border:none;cursor:pointer;transition:all var(--ease);padding:0;-webkit-tap-highlight-color:transparent}
.slider-dot.active{background:var(--c-gold);transform:scale(1.25)}
.slider-gold-bar{position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--c-gold),var(--c-green-br),var(--c-gold));z-index:5}
/* QUICK BAR */
#services-quick{background:var(--c-light);border-bottom:1px solid var(--c-border);padding-block:2rem}
.quick-label{font-size:var(--fs-xs);font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--c-green-md);margin-bottom:1rem}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--c-border);border-radius:var(--radius-md);overflow:hidden}
.quick-item{display:flex;flex-direction:column;padding:clamp(.9rem,2vw,1.25rem);background:var(--c-white);border-right:1px solid var(--c-border);text-decoration:none;transition:background var(--ease);min-height:var(--touch-min)}
.quick-item:last-child{border-right:none}
.quick-item:hover{background:var(--c-green-dk)}.quick-item:hover .qi-title{color:var(--c-white)}.quick-item:hover .qi-icon{color:var(--c-gold-br)}
.qi-icon{font-size:1.4rem;color:var(--c-green-md);margin-bottom:.4rem;display:block;transition:color var(--ease)}
.qi-title{font-size:var(--fs-sm);font-weight:700;color:var(--c-dark);line-height:1.35;transition:color var(--ease)}
/* ABOUT BAND */
#about-band{background:var(--c-green-dk);padding-block:clamp(3rem,7vw,4.5rem)}
.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.about-lbl{font-size:var(--fs-xs);font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-gold-br);margin-bottom:.75rem}
.about-h{font-family:var(--ff-display);font-size:var(--fs-2xl);color:var(--c-white);line-height:1.3}
.about-body p,.about-right p{font-size:var(--fs-base);color:rgba(255,255,255,.9);line-height:1.9;margin-bottom:1.25rem}
.about-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem;margin-top:.5rem}
.pillar{background:rgba(255,255,255,.07);border-top:2px solid var(--c-gold);padding:1.1rem;border-radius:0 0 3px 3px}
.pillar-t{font-size:var(--fs-sm);font-weight:700;color:var(--c-gold-br);margin-bottom:.3rem}
.pillar-d{font-size:.75rem;color:rgba(255,255,255,.65);line-height:1.55}
/* SERVICES */
#services-section{background:var(--c-white)}
.services-hdr{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(2rem,4vw,3rem);flex-wrap:wrap;gap:1rem}
.services-list{display:flex;flex-direction:column;border:1px solid var(--c-border);border-radius:var(--radius-md);overflow:hidden}
.service-row{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--c-border);transition:background var(--ease)}
.service-row:last-child{border-bottom:none}
.service-row:nth-child(even){direction:rtl}.service-row:nth-child(even)>*{direction:ltr}
.service-row:hover{background:var(--c-light)}
.svc-img-wrap{overflow:hidden;height:clamp(220px,30vw,340px);position:relative;background:var(--c-light)}
.svc-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease;display:block}
.service-row:hover .svc-img-wrap img{transform:scale(1.04)}
.svc-img-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--c-green-lt),var(--c-light));display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--c-green-md)}
.svc-content{padding:clamp(1.5rem,3vw,2.5rem) clamp(1.25rem,3vw,2rem);display:flex;flex-direction:column;justify-content:center}
.svc-icon{font-size:1.75rem;margin-bottom:.6rem;display:block}
.svc-legis{font-size:.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--c-green-md);margin-bottom:.4rem;line-height:1.5}
.svc-title{font-family:var(--ff-display);font-size:var(--fs-xl);color:var(--c-green-dk);margin-bottom:.65rem;line-height:1.3}
.svc-text{font-size:var(--fs-sm);color:var(--c-mid);line-height:1.8;margin-bottom:.9rem}
.svc-subs{display:flex;flex-direction:column;gap:4px;margin-bottom:.9rem}
.svc-sub{font-size:.8rem;font-weight:600;color:var(--c-green-md);padding:3px 0;border-bottom:1px solid rgba(42,125,62,.1);display:flex;align-items:center;gap:6px}
.svc-sub::before{content:'';width:5px;height:5px;background:var(--c-gold);border-radius:50%;flex-shrink:0}
.svc-link{font-size:.8rem;font-weight:700;color:var(--c-green-md);text-transform:uppercase;letter-spacing:.5px;display:inline-flex;align-items:center;gap:6px;transition:gap var(--ease);min-height:var(--touch-min)}
.svc-link:hover{gap:10px;color:var(--c-green-dk)}
/* SECTORS */
#sectors{background:var(--c-light)}
.sectors-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.85rem;margin-top:2rem}
.sector-card{background:var(--c-white);border:1px solid var(--c-border);padding:1.25rem .85rem;text-align:center;border-radius:var(--radius-sm);transition:all var(--ease);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80px}
.sector-card:hover{background:var(--c-green-dk);border-color:var(--c-green-dk)}.sector-card:hover .sc-name{color:var(--c-white)}
.sc-icon{font-size:clamp(1.4rem,3vw,1.8rem);margin-bottom:.5rem;display:block}
.sc-name{font-size:.72rem;font-weight:700;color:var(--c-dark);letter-spacing:.3px;line-height:1.3;transition:color var(--ease)}
/* LEGISLATION */
#legis-band{background:linear-gradient(135deg,var(--c-green-dk) 0%,#1e6b32 100%);padding-block:clamp(2rem,5vw,3rem)}
.legis-title{font-family:var(--ff-display);font-size:var(--fs-xl);color:var(--c-white);text-align:center;margin-bottom:2rem}
.legis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem}
.legis-card{background:rgba(255,255,255,.07);border-left:3px solid var(--c-gold);padding:1rem 1.2rem;border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.legis-act{font-size:var(--fs-sm);font-weight:700;color:var(--c-gold-br);margin-bottom:.3rem;line-height:1.4}
.legis-desc{font-size:.75rem;color:rgba(255,255,255,.68);line-height:1.55}
/* WHY US */
#why-us{background:var(--c-white)}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.why-features{display:flex;flex-direction:column;gap:1.4rem;margin-top:1.5rem}
.why-feat{display:flex;gap:1rem;align-items:flex-start}
.why-num{flex-shrink:0;width:40px;height:40px;background:var(--c-green-dk);color:var(--c-white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--ff-display);font-size:.9rem;font-weight:700}
.why-ft{font-size:var(--fs-base);font-weight:700;color:var(--c-green-dk);margin-bottom:.3rem;font-family:var(--ff-body)}
.why-fd{font-size:var(--fs-sm);color:var(--c-mid);line-height:1.7}
.why-visual{background:var(--c-green-dk);border-radius:var(--radius-lg);padding:clamp(1.75rem,4vw,2.5rem);position:relative;overflow:hidden}
.why-visual::before{content:'';position:absolute;top:-40px;right:-40px;width:180px;height:180px;background:rgba(201,166,0,.1);border-radius:50%}
.why-inner{position:relative;z-index:1}
.why-vt{font-family:var(--ff-display);font-size:var(--fs-xl);color:var(--c-white);margin-bottom:1.25rem;line-height:1.3}
.why-vt em{font-style:normal;color:var(--c-gold-br)}
.why-list{display:flex;flex-direction:column;gap:.6rem}
.why-li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);color:rgba(255,255,255,.82)}
.why-li::before{content:'✓';color:var(--c-gold-br);font-weight:700;flex-shrink:0;margin-top:2px}
.why-img-wrap{margin-top:1.5rem;border-radius:var(--radius-sm);overflow:hidden;height:clamp(130px,18vw,180px)}
.why-img-wrap img{width:100%;height:100%;object-fit:cover}
/* CLIENTS */
#clients-section{background:var(--c-light)}
.clients-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:2rem}
.client-logo{background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius-md);padding:.25rem;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:box-shadow var(--ease),transform var(--ease)}
.client-logo:hover{box-shadow:var(--shadow-md)}
.client-name{font-size:.78rem;font-weight:700;color:var(--c-mid);line-height:1.35}
/* ACCRED BAR */
#accred-bar{background:var(--c-green-dk);border-top:3px solid var(--c-gold);padding-block:1.5rem}
.accred-items{display:flex;justify-content:center;align-items:center;gap:clamp(1.5rem,4vw,3rem);flex-wrap:wrap}
.accred-item{text-align:center;color:rgba(255,255,255,.72);font-size:.72rem;font-weight:600;letter-spacing:.4px}
.accred-item strong{display:block;font-size:var(--fs-base);color:var(--c-gold-br);margin-bottom:2px;font-weight:700}
/* DOCS */
#public-docs{background:var(--c-white)}
.docs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2rem}
.doc-card{background:var(--c-light);border:1px solid var(--c-border);border-left:4px solid var(--c-green-br);padding:1.5rem;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.75rem;transition:box-shadow var(--ease)}
.doc-card:hover{box-shadow:var(--shadow-md)}
.doc-icon{font-size:2rem;color:var(--c-green-md)}
.doc-title{font-family:var(--ff-body);font-size:var(--fs-base);font-weight:700;color:var(--c-green-dk)}
.doc-desc{font-size:var(--fs-sm);color:var(--c-mid);line-height:1.65;flex:1}
.doc-dl{display:inline-flex;align-items:center;gap:8px;background:var(--c-green-dk);color:var(--c-white);font-size:.78rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:.7rem 1.2rem;min-height:var(--touch-min);border-radius:var(--radius-sm);text-decoration:none;transition:background var(--ease);margin-top:auto;align-self:flex-start}
.doc-dl:hover{background:var(--c-green-md);color:var(--c-white)}
/* CONTACT */
#contact-section{background:var(--c-light)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3rem);align-items:start}
.contact-cards{display:flex;flex-direction:column;gap:.85rem}
.contact-card{display:flex;gap:1rem;align-items:flex-start;background:var(--c-white);padding:1.1rem 1.25rem;border-radius:var(--radius-sm);border-left:3px solid var(--c-green-br);box-shadow:var(--shadow-sm)}
.cc-icon{font-size:1.3rem;flex-shrink:0;margin-top:2px}
.cc-lbl{font-size:.68rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--c-green-md);margin-bottom:3px}
.cc-val{font-size:var(--fs-base);color:var(--c-dark);font-weight:600;line-height:1.5}
.cc-val a{color:var(--c-dark)}.cc-val a:hover{color:var(--c-green-dk)}
.svc-area-box{background:var(--c-green-dk);padding:1.4rem;border-radius:var(--radius-sm);margin-top:.75rem}
.svc-area-lbl{font-size:.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-gold-br);margin-bottom:.5rem}
.svc-area-box p{font-size:var(--fs-sm);color:rgba(255,255,255,.78);line-height:1.75;margin:0}
.cf-box{background:var(--c-white);padding:clamp(1.5rem,3vw,2.25rem);border-radius:var(--radius-md);border:1px solid var(--c-border);box-shadow:var(--shadow-sm)}
.cf-title{font-family:var(--ff-display);font-size:var(--fs-xl);color:var(--c-green-dk);margin-bottom:1.5rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.form-group{margin-bottom:.85rem}
.form-group label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--c-mid);margin-bottom:5px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:.7rem .9rem;min-height:var(--touch-min);border:1.5px solid #ddd;border-radius:var(--radius-sm);font-family:var(--ff-body);font-size:var(--fs-base);color:var(--c-dark);background:var(--c-white);transition:border-color var(--ease);-webkit-appearance:none;appearance:none}
.form-group textarea{min-height:110px;height:110px;resize:vertical}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--c-green-md);box-shadow:0 0 0 3px rgba(42,125,62,.12)}
.btn-submit{display:block;width:100%;background:var(--c-green-dk);color:var(--c-white);border:none;padding:.85rem 1.5rem;min-height:var(--touch-min);border-radius:var(--radius-sm);font-family:var(--ff-body);font-size:var(--fs-sm);font-weight:700;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:background var(--ease);-webkit-tap-highlight-color:transparent}
.btn-submit:hover,.btn-submit:focus-visible{background:var(--c-green-md)}
/* FOOTER */
#colophon{background:var(--c-charcoal);color:rgba(255,255,255,.72);padding-top:clamp(2.5rem,5vw,3.5rem)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem);padding-bottom:3rem}
.footer-brand-name{font-family:var(--ff-display);font-size:var(--fs-xl);font-weight:700;color:var(--c-white);margin-bottom:.75rem}
.footer-brand-name span{color:var(--c-gold-br)}
.footer-brand-desc{font-size:var(--fs-sm);line-height:1.8;margin-bottom:1rem}
.footer-bbbee{font-size:.68rem;color:var(--c-gold-br);font-weight:700;letter-spacing:1px;text-transform:uppercase}
.footer-col-title{font-family:var(--ff-body);font-size:.68rem;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-gold-br);margin-bottom:1rem}
.footer-col ul{display:flex;flex-direction:column;gap:.4rem}
.footer-col li a,.footer-col p{font-size:var(--fs-sm);color:rgba(255,255,255,.6);text-decoration:none;display:block;transition:color var(--ease);padding-block:2px}
.footer-col li a:hover{color:var(--c-gold-br)}
.footer-bottom-bar{border-top:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.25);padding-block:1rem}
.footer-bottom-bar .container{font-size:.75rem;color:rgba(255,255,255,.38)}
.footer-legal-links{display:flex;gap:1.25rem;flex-wrap:wrap}
.footer-legal-links a{color:rgba(255,255,255,.38);text-decoration:none;font-size:.75rem;min-height:var(--touch-min);display:inline-flex;align-items:center}
.footer-legal-links a:hover{color:rgba(255,255,255,.7)}
.footer-musato{font-size:.72rem;color:rgba(255,255,255,.38);margin-top:.2rem}
.footer-musato a{color:var(--c-gold);text-decoration:none}.footer-musato a:hover{color:var(--c-gold-br)}
.social-links{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap}
.social-link{width:36px;height:36px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.75);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;text-decoration:none;transition:all var(--ease)}
.social-link:hover{background:var(--c-gold);color:#000}
/* PAGE HEADER */
.page-header-banner{background:var(--c-green-dk);position:relative;padding:clamp(2rem,5vw,3.5rem) 0;overflow:hidden}
.page-header-banner::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--c-gold),var(--c-green-br),var(--c-gold))}
/* phb-* rules defined in custom.css */
/* CONTENT AREA */
.content-area{padding-block:clamp(2.5rem,6vw,4rem)}
.content-area .container{display:grid;grid-template-columns:1fr 300px;gap:3rem;align-items:start}
.content-area.no-sidebar .container{grid-template-columns:1fr}
.entry-body h2{font-size:var(--fs-2xl);color:var(--c-green-dk);margin:2rem 0 .75rem;position:relative;padding-left:1rem}
.entry-body h2::before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--c-green-br);border-radius:2px}
.entry-body h3{font-size:var(--fs-xl);color:var(--c-green-dk);margin:1.5rem 0 .5rem}
.entry-body ul{list-style:none;display:flex;flex-direction:column;gap:.3rem;margin-bottom:1.25rem}
.entry-body ul li{font-size:var(--fs-sm);color:var(--c-mid);padding:5px 0;border-bottom:1px solid rgba(0,0,0,.06);display:flex;gap:8px}
.entry-body ul li::before{content:'●';color:var(--c-gold);font-size:8px;margin-top:6px;flex-shrink:0}
.intro-bar{background:var(--c-light);padding:1.4rem 1.6rem;border-radius:var(--radius-sm);margin-bottom:2rem;border-left:4px solid var(--c-green-br);font-size:var(--fs-md);color:var(--c-mid);line-height:1.85}
.service-images-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1.5rem 0}
.service-images-grid img{width:100%;height:clamp(160px,20vw,210px);object-fit:cover;border-radius:var(--radius-sm)}
/* SIDEBAR */
.sidebar-widget{background:var(--c-light);border:1px solid var(--c-border);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:1.5rem}
.swt{font-family:var(--ff-display);font-size:var(--fs-base);font-weight:700;color:var(--c-green-dk);margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid var(--c-green-br)}
.sidebar-svc-list{display:flex;flex-direction:column}
.sidebar-svc-list li a{display:flex;align-items:center;gap:8px;padding:.6rem 0;min-height:var(--touch-min);font-size:var(--fs-sm);color:var(--c-mid);border-bottom:1px solid var(--c-border);transition:all var(--ease)}
.sidebar-svc-list li a:hover{color:var(--c-green-dk);padding-left:5px}
.sidebar-svc-list li a::before{content:'›';color:var(--c-green-br);font-size:1.2rem;font-weight:700}
.sidebar-cta{background:var(--c-green-dk);padding:1.5rem;border-radius:var(--radius-md);text-align:center}
.sct-title{font-family:var(--ff-display);font-size:var(--fs-base);color:var(--c-white);margin-bottom:.6rem}
.sct-text{font-size:var(--fs-sm);color:rgba(255,255,255,.75);margin-bottom:1rem}
/* ABOUT TEMPLATE */
.about-content-grid{display:grid;grid-template-columns:3fr 2fr;gap:4rem;align-items:start}
/* WP CORE */
.alignleft{float:left;margin:0 1.5rem 1rem 0}
.alignright{float:right;margin:0 0 1rem 1.5rem}
.aligncenter{display:block;margin:0 auto 1rem}
.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute;width:1px;word-wrap:normal!important}
.skip-link{position:absolute;top:-100%;left:0;background:var(--c-green-dk);color:var(--c-white);padding:.5rem 1rem;z-index:99999;font-size:var(--fs-sm);min-height:var(--touch-min);display:flex;align-items:center}
.skip-link:focus{top:0}
.pagination{display:flex;justify-content:center;gap:.5rem;padding:2rem 0;flex-wrap:wrap}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:var(--touch-min);min-height:var(--touch-min);border:1px solid var(--c-border);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--c-mid);text-decoration:none;transition:all var(--ease);padding:0 .75rem}
.page-numbers.current,.page-numbers:hover{background:var(--c-green-dk);color:var(--c-white);border-color:var(--c-green-dk)}
.responsive-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--radius-sm);margin-bottom:1.5rem}
.responsive-embed iframe,.responsive-embed object,.responsive-embed embed{position:absolute;top:0;left:0;width:100%;height:100%}
.is-visible{opacity:1!important;transform:translateY(0)!important}
#back-to-top{position:fixed;bottom:clamp(16px,3vw,24px);right:clamp(16px,3vw,24px);width:var(--touch-min);height:var(--touch-min);background:var(--c-green-dk);color:#fff;border:none;border-radius:50%;font-size:1.2rem;cursor:pointer;display:none;z-index:999;box-shadow:0 4px 12px rgba(0,0,0,.2);transition:background var(--ease);-webkit-tap-highlight-color:transparent}
#back-to-top:hover{background:var(--c-green-md)}
/* ELEMENTOR overrides */
.elementor-section{max-width:100%!important}
.elementor-page .phb-breadcrumb{display:none}
/* RESPONSIVE */
@media(min-width:1400px){:root{--container:1320px}.slide{height:660px}.svc-img-wrap{height:360px}}
@media(max-width:1100px){
.service-row{grid-template-columns:1fr}.service-row:nth-child(even){direction:ltr}
.svc-img-wrap{height:clamp(200px,35vw,280px)}
.footer-grid{grid-template-columns:1fr 1fr}
.sectors-grid{grid-template-columns:repeat(3,1fr)}
.legis-grid{grid-template-columns:repeat(2,1fr)}
.clients-grid{grid-template-columns:repeat(3,1fr)}
.content-area .container{grid-template-columns:1fr}
}
@media(max-width:900px){
.quick-grid{grid-template-columns:repeat(2,1fr)}
.about-grid{grid-template-columns:1fr;gap:2rem}
.about-pillars{grid-template-columns:1fr 1fr}
.why-grid{grid-template-columns:1fr}
.contact-grid{grid-template-columns:1fr}
.docs-grid{grid-template-columns:1fr 1fr}
.about-content-grid{grid-template-columns:1fr!important;gap:2rem}
}
@media(max-width:768px){
.menu-toggle{display:flex}
#primary-navigation{display:none}
#primary-navigation.is-open{display:flex;flex-direction:column;align-items:flex-start;width:100%;background:var(--c-white);padding:1rem;border-top:1px solid var(--c-border);box-shadow:0 8px 20px rgba(0,0,0,.1);position:absolute;top:100%;left:0;right:0;z-index:9998}
#primary-menu{flex-direction:column;width:100%;gap:0}
#primary-menu>li{width:100%;border-bottom:1px solid var(--c-border)}
#primary-menu>li:last-child{border-bottom:none}
#primary-menu>li>a{padding:.85rem 1rem;width:100%;min-height:var(--touch-min);justify-content:space-between}
#primary-menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;border-left:3px solid var(--c-green-br);background:var(--c-light);padding-left:.75rem;min-width:unset;border-radius:0}
#primary-menu .sub-menu li a{min-height:var(--touch-min);padding:.65rem .75rem}
.slide{height:clamp(340px,70vw,460px)}.slide-sub{display:none}
.slide-actions{flex-direction:column;width:100%}.slide-actions .btn{width:100%;max-width:100%;justify-content:center}
.sectors-grid{grid-template-columns:repeat(2,1fr)}
.legis-grid{grid-template-columns:1fr}
.footer-grid{grid-template-columns:1fr;gap:2rem}
.about-pillars{grid-template-columns:1fr}
.form-row{grid-template-columns:1fr}
.service-images-grid{grid-template-columns:1fr}
.clients-grid{grid-template-columns:repeat(2,1fr)}
.docs-grid{grid-template-columns:1fr}
.accred-items{gap:1.25rem}
}
@media(max-width:480px){
.container{padding-inline:1rem}
.slide{height:clamp(300px,80vw,400px)}.slide-tag{display:none}
.quick-grid{grid-template-columns:1fr}
.quick-item{border-right:none!important;border-bottom:1px solid var(--c-border)}
.quick-item:last-child{border-bottom:none}
.sectors-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}
.clients-grid{grid-template-columns:1fr}
}
@media(max-width:360px){
.slide{height:300px}.section-title{font-size:1.5rem}
#masthead .container{min-height:60px}
.site-logo,.custom-logo{height:40px}
}
@media(max-height:500px) and (orientation:landscape){
.slide{height:260px}.slide-title{font-size:1.4rem}
#topbar{display:none}
}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
html{scroll-behavior:auto}.slider-track{transition:none}.svc-img-wrap img{transition:none}
}
@media print{
#topbar,#masthead,.menu-toggle,#back-to-top,#accred-bar,.cf-box,#hero-slider,#services-quick,#colophon{display:none!important}
body{font-size:11pt;color:#000;background:#fff}
a{color:#000;text-decoration:underline}
h1,h2,h3{color:#000}
.container{max-width:100%;padding:0}
.service-row{grid-template-columns:1fr;border:1px solid #ccc;page-break-inside:avoid}
.svc-img-wrap{display:none}
}

/* ABOUT BAND TEXT FIX */
#about-band p,.about-right p,.about-body p{color:rgba(255,255,255,.88)!important;}
#about-band{color:rgba(255,255,255,.88);}

/* LOGO TRANSPARENT */
.site-logo,.custom-logo,.custom-logo-link img{background:transparent!important;mix-blend-mode:normal;}

/* READABILITY */
.entry-body,.page-content{color:var(--c-dark);}
.page-header-banner .phb-title{color:var(--c-white);}

/* Hamburger bars */
.hamburger-bar{display:block;width:22px;height:2px;background:currentColor;transition:all var(--ease)}
.hamburger-bar+.hamburger-bar{margin-top:5px}
.menu-toggle[aria-expanded="true"] .hamburger-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .hamburger-bar:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .hamburger-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* phb-bg defined in custom.css */

.site-logo,.custom-logo,.custom-logo img{background:transparent!important;}

#about-band p,#about-band li,#about-band .about-body p,#about-band .about-body{color:rgba(255,255,255,.92)!important;}
