/*
 Theme Name:   Half Price Fencing Child
 Theme URI:    https://halfpricefencing.com.au
 Description:  Divi Child Theme — Industrial Integrity design system
 Author:       Zettagrid
 Author URI:   https://zettagrid.com.au
 Template:     Divi
 Version:      3.0.0
 Text Domain:  halfpricefencing-child
*/

/* ============================================================
   FONTS
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=DM+Sans:wght@300;400;500;600&display=swap');

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
  --orange:       #F28C28;
  --orange-dark:  #D4751A;
  --charcoal:     #131314;
  --onyx:         #0D0D0E;
  --steel:        #2A2A2C;
  --steel-mid:    #3D3D40;
  --steel-light:  #6B6B70;
  --fog:          #A8A8AE;
  --white:        #F4F4F5;

  --font-display: 'Outfit', sans-serif;
  --font-body:    'DM Sans', sans-serif;

  --radius:       0px;
  --transition:   0.25s cubic-bezier(0.4, 0, 0.2, 1);
  --shadow:       0 4px 32px rgba(0,0,0,0.4);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
  text-decoration: none !important;
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body) !important;
  background-color: var(--charcoal) !important;
  color: var(--fog) !important;
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5, h6,
.et_pb_slide_title,
.et_pb_module_header {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  line-height: 1.0 !important;
  letter-spacing: -0.03em !important;
  color: var(--white) !important;
  text-transform: uppercase !important;
}

h1 { font-size: clamp(48px, 8vw, 96px); }
h2 { font-size: clamp(36px, 5vw, 64px); }
h3 { font-size: clamp(22px, 3vw, 32px); }
h4 { font-size: clamp(16px, 2vw, 22px); }

p {
  font-family: var(--font-body) !important;
  color: var(--fog);
  line-height: 1.75;
  margin-bottom: 1.2em;
}

a {
  color: var(--orange);
  text-decoration: none !important;
  transition: color var(--transition);
}

a:hover { color: var(--orange-dark); }

strong, b {
  font-weight: 600;
  color: var(--white);
}

/* ============================================================
   HEADER & NAVIGATION
   ============================================================ */
#main-header,
#main-header.et-fixed-header {
  background-color: rgba(13,13,14,0.95) !important;
  border-bottom: 1px solid rgba(242,140,40,0.15) !important;
  box-shadow: none !important;
  backdrop-filter: blur(12px) !important;
  transition: all var(--transition) !important;
}

#main-header .et-menu-nav > ul > li > a,
#main-header .et-menu > li > a {
  font-family: var(--font-display) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--fog) !important;
  padding: 0 16px !important;
  transition: color var(--transition) !important;
}

#main-header .et-menu-nav > ul > li > a:hover,
#main-header .et-menu > li > a:hover,
#main-header .et-menu > li.current-menu-item > a {
  color: var(--orange) !important;
}

/* Dropdowns */
#main-header .et-menu li ul {
  background-color: var(--onyx) !important;
  border-top: 1px solid rgba(242,140,40,0.2) !important;
  box-shadow: var(--shadow) !important;
  border-radius: 0 !important;
}

#main-header .et-menu li ul li a {
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--fog) !important;
  padding: 12px 20px !important;
  border-bottom: 1px solid var(--steel) !important;
  transition: all var(--transition) !important;
}

#main-header .et-menu li ul li a:hover {
  background-color: var(--steel) !important;
  color: var(--orange) !important;
  padding-left: 28px !important;
}

/* Logo */
#logo {
  max-height: 60px !important;
  transition: opacity var(--transition) !important;
}

#logo:hover { opacity: 0.8 !important; }

/* Mobile menu */
#et_mobile_nav_menu .mobile_menu_bar::before {
  color: var(--orange) !important;
}

.et_mobile_menu {
  background-color: var(--onyx) !important;
  border-top: 1px solid rgba(242,140,40,0.2) !important;
}

.et_mobile_menu li a {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--fog) !important;
  border-bottom: 1px solid var(--steel) !important;
  padding: 14px 20px !important;
}

.et_mobile_menu li a:hover {
  color: var(--orange) !important;
  background-color: var(--steel) !important;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.et_pb_button,
.et_pb_promo_button,
.et_pb_more_button,
a.et_pb_button {
  font-family: var(--font-display) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  background-color: var(--orange) !important;
  color: var(--onyx) !important;
  border: 2px solid var(--orange) !important;
  border-radius: 0 !important;
  padding: 16px 40px !important;
  cursor: pointer !important;
  transition: all var(--transition) !important;
  text-decoration: none !important;
  display: inline-block !important;
}

.et_pb_button::after { display: none !important; }

.et_pb_button:hover,
a.et_pb_button:hover {
  background-color: transparent !important;
  color: var(--orange) !important;
  border-color: var(--orange) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(242,140,40,0.2) !important;
  text-decoration: none !important;
}

/* Ghost variant */
.et_pb_button.btn-ghost,
a.et_pb_button.btn-ghost {
  background-color: transparent !important;
  color: var(--white) !important;
  border-color: rgba(244,244,245,0.3) !important;
}

.et_pb_button.btn-ghost:hover,
a.et_pb_button.btn-ghost:hover {
  border-color: var(--white) !important;
  background-color: rgba(244,244,245,0.05) !important;
  color: var(--white) !important;
}

/* ============================================================
   SECTIONS
   ============================================================ */
.et_pb_section {
  background-color: var(--charcoal) !important;
}

.et_pb_section.section-onyx {
  background-color: var(--onyx) !important;
}

.et_pb_section.section-steel {
  background-color: var(--steel) !important;
}

.et_pb_section.section-orange {
  background-color: var(--orange) !important;
}

.et_pb_row {
  max-width: 1280px !important;
}

/* ============================================================
   BLURB / SERVICE CARDS
   ============================================================ */
.et_pb_blurb {
  background-color: var(--charcoal) !important;
  border: 1px solid var(--steel) !important;
  border-radius: 0 !important;
  padding: 40px 36px !important;
  transition: all var(--transition) !important;
  position: relative !important;
  overflow: hidden !important;
}

.et_pb_blurb::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 0 !important;
  height: 2px !important;
  background: var(--orange) !important;
  transition: width 0.4s ease !important;
}

.et_pb_blurb:hover {
  background-color: var(--steel) !important;
  border-color: var(--steel-mid) !important;
}

.et_pb_blurb:hover::after { width: 100% !important; }

.et_pb_blurb_container .et_pb_module_header {
  font-family: var(--font-display) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  margin-bottom: 12px !important;
}

.et_pb_blurb_description {
  font-size: 14px !important;
  color: var(--steel-light) !important;
  line-height: 1.75 !important;
}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.et_pb_testimonial {
  background-color: var(--charcoal) !important;
  border: 1px solid var(--steel) !important;
  border-left: 2px solid var(--orange) !important;
  border-radius: 0 !important;
  padding: 40px 36px !important;
  box-shadow: none !important;
}

.et_pb_testimonial_description {
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  color: var(--fog) !important;
  font-style: italic !important;
  line-height: 1.8 !important;
}

.et_pb_testimonial_author {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
}

.et_pb_testimonial_company {
  font-family: var(--font-display) !important;
  font-size: 10px !important;
  letter-spacing: 0.15em !important;
  color: var(--orange) !important;
}

/* ============================================================
   CONTACT FORM
   ============================================================ */
.et_pb_contact_form_container input,
.et_pb_contact_form_container textarea,
.et_pb_contact_form_container select {
  background-color: var(--steel) !important;
  border: 1px solid var(--steel-mid) !important;
  border-radius: 0 !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  padding: 16px 20px !important;
  font-size: 14px !important;
  transition: border-color var(--transition) !important;
  width: 100% !important;
}

.et_pb_contact_form_container input:focus,
.et_pb_contact_form_container textarea:focus {
  border-color: var(--orange) !important;
  outline: none !important;
}

.et_pb_contact_form_container input::placeholder,
.et_pb_contact_form_container textarea::placeholder {
  color: var(--steel-light) !important;
}

.et_pb_contact_form_container label {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--steel-light) !important;
  margin-bottom: 8px !important;
  display: block !important;
}

.et_pb_contact_form_container .et_pb_contact_submit {
  background-color: var(--orange) !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  font-size: 12px !important;
  padding: 16px 40px !important;
  border: 2px solid var(--orange) !important;
  border-radius: 0 !important;
  color: var(--onyx) !important;
  cursor: pointer !important;
  transition: all var(--transition) !important;
}

.et_pb_contact_form_container .et_pb_contact_submit:hover {
  background-color: transparent !important;
  color: var(--orange) !important;
}

/* ============================================================
   NUMBER COUNTER
   ============================================================ */
.et_pb_number_counter .percent {
  font-family: var(--font-display) !important;
  font-size: 56px !important;
  font-weight: 700 !important;
  color: var(--orange) !important;
  letter-spacing: -0.03em !important;
}

.et_pb_number_counter .title {
  font-family: var(--font-display) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--steel-light) !important;
}

/* ============================================================
   GALLERY
   ============================================================ */
.et_pb_gallery_item {
  overflow: hidden !important;
  border-radius: 0 !important;
}

.et_pb_gallery_item img {
  transition: transform 0.4s ease, filter 0.4s ease !important;
  filter: grayscale(30%) !important;
}

.et_pb_gallery_item:hover img {
  transform: scale(1.05) !important;
  filter: grayscale(0%) !important;
}

/* ============================================================
   DIVIDERS
   ============================================================ */
.et_pb_divider_internal {
  border-color: var(--steel) !important;
}

/* ============================================================
   FOOTER
   ============================================================ */
#main-footer {
  background-color: var(--onyx) !important;
  border-top: 1px solid var(--steel) !important;
}

#footer-widgets {
  background-color: var(--onyx) !important;
  padding: 80px 0 !important;
}

.footer-widget h4,
.footer-widget .widget-title,
#footer-widgets h4 {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--orange) !important;
  margin-bottom: 20px !important;
}

#footer-widgets p,
#footer-widgets li,
#footer-widgets a {
  font-size: 14px !important;
  color: var(--steel-light) !important;
  line-height: 1.9 !important;
}

#footer-widgets a:hover { color: var(--orange) !important; }

#et-footer-nav {
  background-color: var(--onyx) !important;
  border-top: 1px solid var(--steel) !important;
  padding: 24px 0 !important;
}

.et_pb_footer_bottom_bar p,
.et_pb_footer_bottom_bar a {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  color: var(--steel-mid) !important;
  letter-spacing: 0.04em !important;
}

.et_pb_footer_bottom_bar a:hover { color: var(--orange) !important; }

/* ============================================================
   UTILITY CLASSES
   ============================================================ */
.text-orange   { color: var(--orange) !important; }
.text-white    { color: var(--white) !important; }
.text-fog      { color: var(--fog) !important; }
.text-muted    { color: var(--steel-light) !important; }

.bg-charcoal   { background-color: var(--charcoal) !important; }
.bg-onyx       { background-color: var(--onyx) !important; }
.bg-steel      { background-color: var(--steel) !important; }
.bg-orange     { background-color: var(--orange) !important; }

.border-orange { border: 2px solid var(--orange) !important; }
.border-steel  { border: 1px solid var(--steel) !important; }

.label-text {
  font-family: var(--font-display) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: var(--orange) !important;
}

/* ============================================================
   SCROLL ANIMATION
   ============================================================ */
.hpf-fade-up {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.hpf-fade-up.hpf-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 980px) {
  .et_pb_row { padding: 0 24px !important; }
}

@media (max-width: 767px) {
  h1 { font-size: 42px !important; }
  h2 { font-size: 32px !important; }
  .et_pb_blurb { padding: 28px 20px !important; }
  .et_pb_testimonial { padding: 28px !important; }
}
