/*
Theme Name: SignPermit
Theme URI: https://signpermit.com.au
Author: Neon Brothers Australia
Author URI: https://neonbrothers.com.au
Description: Custom WordPress theme for signpermit.com.au — Australia's sign permit resource. Covers all 8 states and 537 councils with permit checker, cost calculator, and timeline estimator tools.
Version: 1.0.0
License: Proprietary
Text Domain: signpermit
*/

/* ==========================================================================
   DESIGN TOKENS — locked, never change these
   ========================================================================== */
:root {
    --sp-navy:       #002664;
    --sp-navy-dark:  #001a4d;
    --sp-navy-light: #003380;
    --sp-white:      #FFFFFF;
    --sp-grey-bg:    #F2F4F8;
    --sp-grey-light: #E8E9ED;
    --sp-grey-mid:   #6B7280;
    --sp-grey-dark:  #374151;
    --sp-ink:        #111827;
    --sp-ink-light:  #4B5563;
    --sp-green:      #2E7D32;
    --sp-red:        #C61C23;
    --sp-amber:      #C9A227;
    --sp-orange:     #E8440A;
    --sp-border:     #D1D5DB;
    --sp-radius-sm:  3px;
    --sp-radius:     6px;
    --sp-radius-lg:  10px;
    --sp-shadow-sm:  0 1px 3px rgba(0,0,0,0.08);
    --sp-shadow-md:  0 4px 12px rgba(0,0,0,0.10);
    --sp-shadow-lg:  0 8px 32px rgba(0,0,0,0.12);
    --sp-max-width:  1200px;
    --sp-font-heading: 'Public Sans', 'Helvetica Neue', Arial, sans-serif;
    --sp-font-body:    Arial, 'Helvetica Neue', sans-serif;
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    font-family: var(--sp-font-body);
    font-size: 16px; line-height: 1.6;
    color: var(--sp-ink);
    background: var(--sp-grey-bg);
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a  { color: var(--sp-navy); text-decoration: none; }
a:hover { text-decoration: underline; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }


/* ==========================================================================
   GLOBAL NAV + FOOTER STYLES (header.php / footer.php)
   ========================================================================== */
.sp-nav { background: rgba(0,38,100,0.97); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255,255,255,0.08); position: fixed; top: 0; left: 0; right: 0; z-index: 1000; height: 60px; }
.sp-nav-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; height: 100%; }
.sp-nav-logo { font-family: 'Public Sans', Arial, sans-serif; font-weight: 900; font-size: 19px; color: #FFFFFF; letter-spacing: -0.5px; text-decoration: none; white-space: nowrap; }
.sp-nav-logo small { font-size: 9px; font-weight: 400; color: rgba(255,255,255,0.38); margin-left: 1px; }
.sp-nav-logo:hover { text-decoration: none; }
.sp-nav-links { display: flex; gap: 2px; list-style: none; align-items: center; margin: 0; padding: 0; }
.sp-nav-links a { font-family: 'Public Sans', Arial, sans-serif; font-size: 13px; font-weight: 600; color: rgba(255,255,255,0.75); padding: 8px 13px; border-radius: 3px; transition: all 0.18s; text-decoration: none; }
.sp-nav-links a:hover { color: #FFFFFF; background: rgba(255,255,255,0.09); text-decoration: none; }
.sp-nav-cta { background: #FFFFFF; color: #002664 !important; padding: 8px 18px !important; border-radius: 3px !important; font-weight: 700 !important; }
.sp-nav-cta:hover { background: #F2F4F8 !important; }
.sp-nav-toggle { display: none; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: #FFFFFF; padding: 8px; }
.nav-spacer { height: 60px; }

.sp-footer { background: #001a4d; color: rgba(255,255,255,0.7); padding: 48px 24px 24px; margin-top: 64px; }
.sp-footer-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px; }
.sp-footer-col h4 { font-family: 'Public Sans', Arial, sans-serif; font-size: 1rem; font-weight: 700; color: #FFFFFF; margin-bottom: 14px; }
.sp-footer-col p, .sp-footer-col li { font-size: 0.85rem; line-height: 1.8; }
.sp-footer-col ul { list-style: none; padding: 0; margin: 0; }
.sp-footer-col a { color: rgba(255,255,255,0.5); text-decoration: none; }
.sp-footer-col a:hover { color: #FFFFFF; }
.sp-footer-bottom { max-width: 1200px; margin: 32px auto 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.1); font-size: 0.8rem; text-align: center; }

@media (max-width: 900px) {
    .sp-footer-inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .sp-nav-links { display: none; }
    .sp-nav-toggle { display: block; }
    .sp-nav-links.open { display: flex; flex-direction: column; position: fixed; top: 60px; left: 0; right: 0; bottom: 0; background: rgba(0,38,100,0.98); backdrop-filter: blur(12px); padding: 16px 24px; gap: 0; z-index: 999; overflow-y: auto; }
    .sp-nav-links.open a { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.08); font-size: 17px; }
    .sp-nav-cta { margin-top: 16px; text-align: center; display: block !important; }
    .sp-footer-inner { grid-template-columns: 1fr; gap: 24px; }
}
