/*
Theme Name: Impact Production
Theme URI: https://impactproductionla.com/
Author: Armour Creative, LLC
Description: Custom theme rebuilding impactproductionla.com from archival sources. Replaces the original Avada/Fusion build — no page builder, no license, no shortcode lock-in.
Version: 1.0.0
License: GPL-2.0-or-later
Text Domain: impact
*/

@font-face{
	font-family:"Museo Slab";
	src:url("assets/fonts/museo-slab-500.woff2") format("woff2"),
	    url("assets/fonts/museo-slab-500.woff") format("woff"),
	    url("assets/fonts/museo-slab-500.ttf") format("truetype");
	font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
	font-family:"Museo Slab";
	src:url("assets/fonts/museo-slab-300.woff2") format("woff2"),
	    url("assets/fonts/museo-slab-300.woff") format("woff"),
	    url("assets/fonts/museo-slab-300.ttf") format("truetype");
	font-weight:300;font-style:normal;font-display:swap;
}


/* ---- Design tokens, recovered from the archived Avada build ---- */
:root{
  --ip-green:#ffd100;
  --ip-green-dark:#1a1a1a;
  --ip-green-mid:#ffd100;
  --ip-yellow:#ffd100;
  --ip-ink:#333;
  --ip-ink-soft:#747474;
  --ip-rule:#e0dede;
  --ip-wash:#f6f6f6;
  --ip-white:#fff;

  /* Museo Slab 500 is a commercial face (exljbris) and cannot ship here.
     Roboto Slab is the closest free substitute for the original headings. */
  --ip-head:"Roboto",Arial,Helvetica,sans-serif;
  --ip-body:"Roboto",Arial,Helvetica,sans-serif;

  --ip-max:1100px;
  --ip-step:1.5rem;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ip-white);
  color:var(--ip-ink);
  font-family:var(--ip-body);
  font-size:1.0625rem;      /* 17px — never below the 16px floor */
  line-height:1.65;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--ip-green-dark)}
a:hover,a:focus-visible{color:var(--ip-ink)}
:focus-visible{outline:3px solid var(--ip-green-dark);outline-offset:2px}

h1,h2,h3,h4{font-family:var(--ip-head);font-weight:500;line-height:1.15;color:var(--ip-ink);margin:0 0 .6em}
h1{font-size:clamp(2rem,4.5vw,3rem)}
h2{font-size:clamp(1.5rem,3vw,2.125rem)}
h3{font-size:1.3125rem}

.ip-wrap{max-width:var(--ip-max);margin-inline:auto;padding-inline:var(--ip-step)}
.ip-skip{position:absolute;left:-9999px}
.ip-skip:focus{left:var(--ip-step);top:var(--ip-step);z-index:99;background:var(--ip-white);padding:.75rem 1rem;font-size:1rem}

/* ---- Header ---- */
.ip-header{border-top:4px solid var(--ip-green);background:var(--ip-white);box-shadow:0 1px 0 var(--ip-rule)}
.ip-header__inner{display:flex;flex-wrap:wrap;gap:var(--ip-step);align-items:center;justify-content:space-between;padding-block:1.25rem}
.ip-brand{font-family:var(--ip-head);font-size:1.375rem;letter-spacing:.02em;text-decoration:none;color:var(--ip-ink)}
.ip-brand b{color:var(--ip-green-dark);font-weight:500}

.ip-nav ul{display:flex;flex-wrap:wrap;gap:1.1rem;list-style:none;margin:0;padding:0}
.ip-nav a{
  font-size:1rem;               /* 16px floor, uppercase nav */
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ip-ink);
  padding-block:.35rem;
  border-bottom:2px solid transparent;
}
.ip-nav a:hover,.ip-nav a:focus-visible,.ip-nav .current-menu-item>a{color:var(--ip-green-dark);border-bottom-color:var(--ip-green)}

/* ---- Page furniture ---- */
.ip-hero{background:var(--ip-wash);border-bottom:1px solid var(--ip-rule);padding-block:clamp(2.5rem,6vw,4.5rem)}
.ip-hero p{font-size:1.1875rem;max-width:60ch;color:var(--ip-ink-soft);margin:0}
.ip-main{padding-block:clamp(2rem,5vw,3.5rem)}
.ip-rule{height:4px;width:64px;background:var(--ip-yellow);border:0;margin:0 0 1.5rem}

.ip-grid{display:grid;gap:var(--ip-step);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.ip-card{border:1px solid var(--ip-rule);background:var(--ip-white)}
.ip-card__body{padding:1.25rem}
.ip-card h3{margin-bottom:.35rem}
.ip-card p{margin:0;color:var(--ip-ink-soft);font-size:1rem}

.ip-btn{
  display:inline-block;background:var(--ip-green);color:#1a1a1a;
  font-family:var(--ip-head);font-size:1rem;letter-spacing:.05em;text-transform:uppercase;
  text-decoration:none;padding:.85rem 1.6rem;border:0;cursor:pointer;
}
.ip-btn:hover,.ip-btn:focus-visible{background:var(--ip-green-dark);color:var(--ip-green)}

/* ---- Order forms (Gravity Forms lives inside this) ---- */
.ip-form{max-width:680px}
.ip-form fieldset{border:0;border-top:1px solid var(--ip-rule);margin:0 0 2rem;padding:1.5rem 0 0}
.ip-form legend{
  font-family:var(--ip-head);font-size:1rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ip-green-dark);padding-inline-end:.75rem;
}
.ip-field{margin-bottom:1.15rem}
.ip-field label{display:block;font-size:1rem;font-weight:700;margin-bottom:.35rem}
.ip-field input[type=text],.ip-field input[type=email],.ip-field input[type=date],.ip-field textarea,.ip-field select{
  width:100%;font:inherit;font-size:1rem;padding:.7rem .8rem;
  border:1px solid #bdbdbd;background:var(--ip-white);color:var(--ip-ink);
}
.ip-field input:focus,.ip-field textarea:focus,.ip-field select:focus{border-color:var(--ip-green-dark);outline:2px solid var(--ip-green);outline-offset:1px}
.ip-choice{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.6rem;font-size:1rem}
.ip-choice input{width:1.15rem;height:1.15rem}
.ip-note{font-size:1rem;color:var(--ip-ink-soft)}

/* ---- Footer ---- */
.ip-footer{background:var(--ip-ink);color:#d6d6d6;margin-top:3rem;padding-block:2.25rem;font-size:1rem}
.ip-footer a{color:var(--ip-green)}
.ip-footer__inner{display:flex;flex-wrap:wrap;gap:var(--ip-step);justify-content:space-between}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ================= One-page scroller ================= */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
section[id]{scroll-margin-top:120px}

.ip-band{padding-block:clamp(2.75rem,6vw,5rem)}
.ip-band--wash{background:var(--ip-wash);border-block:1px solid var(--ip-rule)}
.ip-band--rule{border-top:1px solid var(--ip-rule)}
.ip-band--hero{
  background:var(--ip-ink);
  padding-block:clamp(3.5rem,9vw,7rem);
}
.ip-band--hero h1{
  color:var(--ip-white);
  text-transform:uppercase;
  letter-spacing:.01em;
  margin:0;
  max-width:18ch;
}
.ip-band--hero h1::after{
  content:"";display:block;width:72px;height:5px;
  background:var(--ip-green);margin-top:1.25rem;
}

.ip-lede{font-size:1.125rem;max-width:66ch}
.ip-eyebrow{
  font-family:var(--ip-head);
  font-size:1.0625rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ip-green-dark);
  margin:0 0 1rem;
}

.ip-split{display:grid;gap:clamp(1.5rem,4vw,3rem);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:start}
.ip-ways{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem}
.ip-ways li{border-left:3px solid var(--ip-green);padding-left:1rem;font-size:1.0625rem}
.ip-ways span{display:block;font-weight:700;font-size:1rem;color:var(--ip-ink-soft);margin-bottom:.15rem}
.ip-ways a:not(.ip-btn){font-family:var(--ip-head);font-size:1.1875rem;text-decoration:none}
.ip-ways .ip-btn{margin-top:.5rem}

.ip-team{display:grid;gap:clamp(1.25rem,3vw,2rem);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.ip-person h3{margin-bottom:.3rem;color:var(--ip-green-dark)}
.ip-person p{margin:0;font-size:1rem;color:var(--ip-ink-soft)}

.ip-quote{margin:0;max-width:74ch;border-left:5px solid var(--ip-yellow);padding-left:clamp(1rem,3vw,2rem)}
.ip-quote p{font-size:1.1875rem;font-style:italic}
.ip-quote cite{display:block;margin-top:.75rem;font-style:normal;font-weight:700;font-size:1rem;color:var(--ip-green-dark)}

/* ================= Logo-only homepage ================= */
.home .ip-header,
.home .ip-footer { display: none; }
.ip-home-logo{
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	background: var(--ip-white);
}
.ip-home-logo__img{
	width: min(440px, 78vw);
	height: auto;
}

/* Logo in the header brand (inner pages) */
.ip-brand__img{
	display: block;
	height: 15px;
	width: auto;
}

/* ================= Gravity Forms — branded card ================= */
.gform_wrapper{
	max-width: 768px;
	margin-inline: auto;
	padding: 30px;
	background: var(--ip-white);
	border: 1px solid var(--ip-rule);
	box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.gform_wrapper .gsection{
	border-bottom: 2px solid var(--ip-green);
	margin: 1.75rem 0 1.25rem;
	padding-bottom: .4rem;
}
.gform_wrapper .gsection .gsection_title{
	font-family: var(--ip-head);
	font-size: 1rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ip-green-dark);
	margin: 0;
}
.gform_wrapper .gfield_label{
	font-family: var(--ip-body);
	font-size: 1rem;
	font-weight: 700;
	color: var(--ip-ink);
}
.gform_wrapper .gfield_required{ color: var(--ip-green-dark); }
.gform_wrapper input[type=text],
.gform_wrapper input[type=email],
.gform_wrapper input[type=number],
.gform_wrapper input[type=tel],
.gform_wrapper select,
.gform_wrapper textarea{
	font: inherit;
	font-size: 1rem;
	padding: .7rem .8rem;
	border: 1px solid #bdbdbd;
	background: var(--ip-white);
	color: var(--ip-ink);
	border-radius: 0;
}
.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus{
	border-color: var(--ip-green-dark);
	outline: 2px solid var(--ip-green);
	outline-offset: 1px;
}
.gform_wrapper .gform_footer{ padding-top: .5rem; }
.gform_wrapper .gform_button,
.gform_wrapper button[type=submit]{
	display: inline-block;
	background: var(--ip-green);
	color: #1a1a1a;
	font-family: var(--ip-head);
	font-size: 1rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: .85rem 1.6rem;
	border: 0;
	border-radius: 0;
	cursor: pointer;
}
.gform_wrapper .gform_button:hover,
.gform_wrapper .gform_button:focus,
.gform_wrapper button[type=submit]:hover{
	background: var(--ip-green-dark);
	color: var(--ip-white);
}

/* Recolor Gravity Forms "Orbital" theme to Impact green (its own CSS vars) */
.gform_wrapper.gform-theme--orbital{
	--gf-ctrl-btn-bg-color-primary: #ffd100;
	--gf-ctrl-btn-bg-color-hover-primary: #1a1a1a;
	--gf-ctrl-btn-color-primary: #1a1a1a;
	--gf-ctrl-btn-color-hover-primary: #ffd100;
	--gf-color-primary: #1a1a1a;
	--gf-color-primary-rgb: 26, 26, 26;
	--gf-color-primary-contrast: #ffffff;
}

/* Flatten the hero band — basically all of it */
.ip-hero{ padding-block: .85rem; }

/* No margin on the hero title */
.ip-hero h1{ margin: 0; }

/* Heading scale — H1 high-30s, stepping down from there */
h1{ font-size: 2.375rem; } /* 38px */
h2{ font-size: 1.75rem;  } /* 28px */
h3{ font-size: 1.375rem; } /* 22px */
h4{ font-size: 1.125rem; } /* 18px */

/* Roboto heading weights */
h1,h2{ font-weight:300; }
h3,h4{ font-weight:400; }

/* Text stays black — yellow is only for the button and rules */
.gform_wrapper .gsection .gsection_title,
.gform_wrapper .gfield_required{ color: #1a1a1a; }

/* Homepage: stack logo + button, centered */
.ip-home-logo{ flex-direction: column; gap: 1.75rem; }
.ip-home-logo__btn{ font-size: 1rem; }

/* Vertical gap between form fields */
.gform_wrapper.gform-theme--orbital{ --gf-form-gap-y: 25px; }

/* GF submit button == the .ip-btn exactly (square, uppercase, yellow→invert on hover) */
.gform-theme--orbital .gform_footer .gform_button,
.gform-theme--orbital .gform_footer input[type=submit],
.gform-theme--orbital .gform_footer button[type=submit]{
	background: var(--ip-green);
	color: #1a1a1a;
	font-family: var(--ip-head);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: .85rem 1.6rem;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	min-height: 0;
	width: auto;
	cursor: pointer;
}
.gform-theme--orbital .gform_footer .gform_button:hover,
.gform-theme--orbital .gform_footer button[type=submit]:hover,
.gform-theme--orbital .gform_footer input[type=submit]:hover{
	background: #1a1a1a;
	color: var(--ip-green);
}

/* Force GF button to match .ip-btn (Orbital out-specifies + loads later; !important authorized) */
.gform_wrapper.gform-theme--orbital .gform_footer .gform_button,
.gform_wrapper.gform-theme--orbital .gform_footer button[type=submit],
.gform_wrapper.gform-theme--orbital .gform_footer input[type=submit]{
	background: var(--ip-green) !important;
	color: #1a1a1a !important;
	font-family: var(--ip-head) !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: .05em !important;
	text-transform: uppercase !important;
	padding: .85rem 1.6rem !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	min-height: 0 !important;
	width: auto !important;
}
.gform_wrapper.gform-theme--orbital .gform_footer .gform_button:hover,
.gform_wrapper.gform-theme--orbital .gform_footer button[type=submit]:hover,
.gform_wrapper.gform-theme--orbital .gform_footer input[type=submit]:hover{
	background: #1a1a1a !important;
	color: var(--ip-green) !important;
}

/* Move the number range hint off each field — shown once under the section instead */
.gform_wrapper .gfield--type-number .gfield_description.instruction{ display: none; }
