/*
Theme Name: Godfrey Production
Theme URI: https://godfreyproduction.co.za
Author: Godfrey Production
Author URI: https://godfreyproduction.co.za
Description: Bold dark event-production theme for Godfrey Production. Built for full Elementor & Elementor Pro editing — every section, header, hero, services grid and footer is editable from the Elementor canvas. Includes WhatsApp click-to-chat, SEO meta, JSON-LD LocalBusiness schema, and a floating WhatsApp button.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: godfrey
Tags: elementor, full-site-editing, business, dark, events, one-column, custom-logo, custom-menu, featured-images, theme-options
*/

/* ---------- Design tokens ---------- */
:root{
  --gp-bg:#0a0a0a;
  --gp-card:#141414;
  --gp-border:#262626;
  --gp-fg:#f5f5f5;
  --gp-muted:#a3a3a3;
  --gp-primary:#f59e0b;
  --gp-primary-glow:#fb923c;
  --gp-whatsapp:#25D366;
  --gp-shadow-glow:0 0 40px rgba(245,158,11,.35);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--gp-bg);color:var(--gp-fg);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.font-display{font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.02em}
.container{max-width:1280px;margin:0 auto;padding:0 1.5rem}

/* ---------- Header ---------- */
.gp-header{position:fixed;top:0;left:0;right:0;z-index:50;backdrop-filter:blur(12px);background:rgba(10,10,10,.7);border-bottom:1px solid rgba(38,38,38,.5);overflow:hidden}
.gp-header__bg{position:absolute;inset:0;z-index:-1}
.gp-header__bg img{width:100%;height:100%;object-fit:cover;opacity:.25}
.gp-header__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,var(--gp-bg),rgba(10,10,10,.7) 50%,rgba(10,10,10,.4))}
.gp-header__inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 0}
.gp-brand{display:flex;align-items:center;gap:.65rem}
.gp-brand img{height:40px;width:40px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(0,0,0,.6))}
.gp-brand span{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.25rem;letter-spacing:.1em}
.gp-brand span em{color:var(--gp-primary);font-style:normal}
.gp-nav{display:none;gap:2rem;font-size:.875rem;font-weight:500}
.gp-nav a:hover{color:var(--gp-primary)}
.gp-cta{display:none;align-items:center;gap:.5rem;background:var(--gp-primary);color:#000;padding:.5rem 1rem;font-weight:600;font-size:.875rem;border-radius:2px}
.gp-cta:hover{opacity:.9}
@media(min-width:768px){.gp-nav{display:flex}.gp-cta{display:inline-flex}}

/* ---------- Hero ---------- */
.gp-hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;padding:8rem 0 5rem;overflow:hidden}
.gp-hero__bg{position:absolute;inset:0;z-index:-1}
.gp-hero__bg img{width:100%;height:100%;object-fit:cover;opacity:.4}
.gp-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--gp-bg),rgba(10,10,10,.8),rgba(10,10,10,.3))}
.gp-eyebrow{color:var(--gp-primary);font-size:.875rem;letter-spacing:.3em;font-weight:600;margin-bottom:1.5rem}
.gp-h1{font-family:'Bebas Neue',Impact,sans-serif;font-size:clamp(3rem,11vw,11rem);line-height:.85;margin:0}
.gp-gradient{background:linear-gradient(135deg,var(--gp-primary),var(--gp-primary-glow));-webkit-background-clip:text;background-clip:text;color:transparent}
.gp-hero__row{margin-top:2rem;display:grid;gap:2rem;align-items:end}
@media(min-width:768px){.gp-hero__row{grid-template-columns:1fr 1fr}}
.gp-hero__row p{color:var(--gp-muted);font-size:1.125rem;max-width:36rem}
.gp-actions{display:flex;flex-wrap:wrap;gap:.75rem}
@media(min-width:768px){.gp-actions{justify-content:flex-end}}
.gp-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.5rem;font-weight:600;font-size:.875rem;border-radius:2px;border:1px solid var(--gp-border)}
.gp-btn--primary{background:var(--gp-primary);color:#000;border-color:var(--gp-primary);box-shadow:var(--gp-shadow-glow)}
.gp-btn--primary:hover{opacity:.9}
.gp-btn--ghost:hover{border-color:var(--gp-primary);color:var(--gp-primary)}

/* ---------- Marquee ---------- */
.gp-marquee{border-top:1px solid var(--gp-border);border-bottom:1px solid var(--gp-border);background:rgba(38,38,38,.4);padding:1.5rem 0;overflow:hidden}
.gp-marquee__track{display:flex;gap:3rem;animation:gp-scroll 30s linear infinite;white-space:nowrap;font-family:'Bebas Neue',Impact,sans-serif;font-size:2rem;color:var(--gp-muted)}
.gp-marquee__track span em{color:var(--gp-primary);font-style:normal;margin-left:3rem}
@keyframes gp-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- Services ---------- */
.gp-section{padding:7rem 0}
.gp-section__head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1.5rem;margin-bottom:4rem}
.gp-section__head h2{font-family:'Bebas Neue',Impact,sans-serif;font-size:clamp(2.5rem,6vw,4.5rem);line-height:1;margin:0}
.gp-section__head p{color:var(--gp-muted);max-width:28rem}
.gp-tag{color:var(--gp-primary);font-size:.75rem;letter-spacing:.3em;font-weight:600;margin-bottom:.75rem}
.gp-services{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:640px){.gp-services{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.gp-services{grid-template-columns:repeat(3,1fr)}}
.gp-card{background:var(--gp-card);border:1px solid var(--gp-border);border-radius:2px;overflow:hidden;transition:.4s}
.gp-card:hover{border-color:rgba(245,158,11,.6);transform:translateY(-4px)}
.gp-card__img{position:relative;aspect-ratio:4/3;overflow:hidden}
.gp-card__img img{width:100%;height:100%;object-fit:cover;transition:.7s}
.gp-card:hover .gp-card__img img{transform:scale(1.1)}
.gp-card__img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--gp-card),rgba(20,20,20,.4),transparent)}
.gp-card__num{position:absolute;top:1rem;left:1rem;font-family:monospace;font-size:.75rem;color:var(--gp-primary);background:rgba(10,10,10,.7);padding:.25rem .5rem;border-radius:2px;z-index:1;backdrop-filter:blur(4px)}
.gp-card__body{padding:1.5rem}
.gp-card__body h3{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.5rem;margin:0 0 .5rem;transition:.3s}
.gp-card:hover .gp-card__body h3{color:var(--gp-primary)}
.gp-card__body p{font-size:.875rem;color:var(--gp-muted);margin:0;line-height:1.6}

/* ---------- CTA ---------- */
.gp-cta-section{position:relative;padding:8rem 0;text-align:center;overflow:hidden}
.gp-cta-section__bg{position:absolute;inset:0;z-index:-1}
.gp-cta-section__bg img{width:100%;height:100%;object-fit:cover;opacity:.25}
.gp-cta-section__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--gp-bg),rgba(10,10,10,.9),var(--gp-bg))}
.gp-cta-section h2{font-family:'Bebas Neue',Impact,sans-serif;font-size:clamp(2.5rem,8vw,6rem);line-height:.9;margin:0}

/* ---------- Footer ---------- */
.gp-footer{border-top:1px solid var(--gp-border);background:rgba(20,20,20,.5);padding:3rem 0}
.gp-footer__grid{display:grid;gap:2rem;grid-template-columns:1fr}
@media(min-width:768px){.gp-footer__grid{grid-template-columns:repeat(3,1fr)}}
.gp-footer h4{font-family:'Bebas Neue',Impact,sans-serif;font-size:.875rem;letter-spacing:.2em;color:var(--gp-muted);margin:0 0 .75rem}
.gp-footer ul{list-style:none;padding:0;margin:0;font-size:.875rem}
.gp-footer li{margin-bottom:.4rem}
.gp-footer__phone{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.5rem;color:var(--gp-primary)}
.gp-footer__bottom{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--gp-border);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.75rem;color:var(--gp-muted)}

/* ---------- Floating WhatsApp ---------- */
.gp-wa{position:fixed;bottom:1.5rem;right:1.5rem;z-index:60;height:56px;width:56px;display:grid;place-items:center;border-radius:9999px;background:var(--gp-whatsapp);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:.2s}
.gp-wa:hover{transform:scale(1.1)}
.gp-wa svg{width:28px;height:28px}

/* ---------- Elementor compatibility ---------- */
.elementor-section,.elementor-container{position:relative}
.elementor-button{font-family:inherit}
body.elementor-editor-active .gp-header{position:relative}
