/* Default page template — banner + content area.
   Banner layout/styling matches the Careers page hero design: an outer
   max-width:1280px centered container (same as the header nav and every
   other page's hero, so the text column lines up with the rest of the
   site instead of hugging the raw viewport edge), a text column confined
   to 640px within that, a light gradient scrim (strong on the left where
   the text sits, fading out to the right so the photo shows through), and
   dark text with an orange accent rule. */

.gor-default-banner {
  position: relative;
  min-height: 640px;
  display: flex;
  align-items: center;
  background-color: #111;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  padding: 120px 0 3rem;
}
.gor-default-banner-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(159, 164, 169, 0.78) 0%, rgba(159, 164, 169, 0.66) 32%, rgba(159, 164, 169, 0.36) 60%, rgba(159, 164, 169, 0.27) 100%);
}
.gor-default-banner-container {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
  padding: 0 var(--gutter);
}
.gor-default-banner-inner {
  max-width: 640px;
  text-align: left;
}
.gor-default-banner-title {
  margin: 0;
  font-family: var(--font-body);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 0.98;
  font-size: clamp(2.4rem, 5.5vw, 4.4rem);
  color: rgb(17, 17, 17);
}
.gor-default-banner-title .gorilla-va-accent { color: var(--gor-orange); }
.gor-default-banner-rule {
  width: 200px;
  height: 4px;
  background: var(--gor-orange);
  margin: 1.5rem 0;
}
.gor-default-banner-sub {
  margin: 0;
  max-width: 62ch;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: clamp(1rem, 1.6vw, 1.15rem);
  line-height: var(--body-line);
  color: rgb(17, 17, 17);
}

.gor-default-content {
  background: #fff;
}
.gor-default-content-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(3rem, 6vw, 5rem) var(--gutter);
  font-family: var(--font-body);
  font-size: 1.05rem;
  line-height: var(--body-line);
  color: var(--gor-black);
}
/* WordPress' own block-library CSS applies a narrower default content
   width to individual blocks (paragraphs, quotes, lists, headings)
   regardless of this container's actual width — that's the empty
   right-hand gap seen next to text. Force text-flow blocks back to the
   full width of this container. Deliberately NOT applied to every child
   (images/embeds/tables/buttons can have their own intentional width or
   centering that this would otherwise break). */
.gor-default-content-inner > p,
.gor-default-content-inner > blockquote,
.gor-default-content-inner > ul,
.gor-default-content-inner > ol,
.gor-default-content-inner > h1,
.gor-default-content-inner > h2,
.gor-default-content-inner > h3,
.gor-default-content-inner > h4,
.gor-default-content-inner > h5,
.gor-default-content-inner > h6,
.gor-archive-main > p,
.gor-archive-main > blockquote,
.gor-archive-main > ul,
.gor-archive-main > ol,
.gor-archive-main > h1,
.gor-archive-main > h2,
.gor-archive-main > h3,
.gor-archive-main > h4,
.gor-archive-main > h5,
.gor-archive-main > h6 {
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.gor-default-content-inner > *:first-child { margin-top: 0; }
.gor-archive-main > *:first-child { margin-top: 0; }

/* ---------- Single post: meta line, tags, prev/next nav ---------- */
.gor-post-meta {
  margin-bottom: 1.75rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--steel-200);
  font-family: var(--font-ui);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-600);
}
.gor-post-meta a { color: var(--gor-orange); text-decoration: none; }
.gor-post-meta a:hover { text-decoration: underline; }
.gor-post-meta-sep { margin: 0 0.5rem; color: var(--steel-200); }

.gor-post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--steel-200);
}
.gor-post-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.85rem;
  border: 1px solid var(--steel-200);
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  color: var(--ink-600);
  text-decoration: none;
}
.gor-post-tag:hover { border-color: var(--gor-orange); color: var(--gor-orange); }

.gor-post-nav {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--steel-200);
  font-family: var(--font-body);
}
.gor-post-nav-prev, .gor-post-nav-next { flex: 1; min-width: 0; }
.gor-post-nav-next { text-align: right; }
.gor-post-nav a {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--gor-black);
  font-weight: 700;
  text-decoration: none;
}
.gor-post-nav a:hover { color: var(--gor-orange); }

.gor-default-content-inner h1,
.gor-default-content-inner h2,
.gor-default-content-inner h3,
.gor-default-content-inner h4 {
  font-family: var(--font-body);
  font-weight: 700;
  line-height: 1.15;
  color: var(--gor-black);
  margin: 2.25rem 0 0.9rem;
}
.gor-default-content-inner h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.gor-default-content-inner h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
.gor-default-content-inner h4 { font-size: 1.1rem; text-transform: uppercase; letter-spacing: 0.04em; }
.gor-default-content-inner p { margin: 0 0 1.25rem; }
.gor-default-content-inner a { color: var(--gor-orange); text-decoration: underline; text-underline-offset: 2px; }
.gor-default-content-inner a:hover { color: var(--orange-600); }
.gor-default-content-inner ul,
.gor-default-content-inner ol { margin: 0 0 1.25rem; padding-left: 1.4rem; }
.gor-default-content-inner li { margin-bottom: 0.5rem; }
.gor-default-content-inner blockquote {
  margin: 1.75rem 0;
  padding: 0.25rem 0 0.25rem 1.5rem;
  border-left: 3px solid var(--gor-orange);
  font-style: italic;
  color: var(--ink-600);
}
.gor-default-content-inner img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  margin: 1.5rem 0;
}
.gor-default-content-inner hr {
  border: none;
  border-top: 1px solid var(--steel-200);
  margin: 2.5rem 0;
}
.gor-default-content-inner table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1.5rem;
  font-size: 0.95rem;
}
.gor-default-content-inner th,
.gor-default-content-inner td {
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--steel-200);
  text-align: left;
}
.gor-default-content-inner th { background: var(--steel-50); font-weight: 700; }

.gor-default-pagination {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--steel-200);
  font-family: var(--font-body);
  font-size: 0.9rem;
}
.gor-default-pagination a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.2rem;
  height: 2.2rem;
  padding: 0 0.6rem;
  margin: 0 0.25rem;
  border: 1px solid var(--steel-200);
  border-radius: var(--radius-sm);
  color: var(--gor-black);
  text-decoration: none;
}
.gor-default-pagination a:hover { border-color: var(--gor-orange); color: var(--gor-orange); }

@media (max-width: 640px) {
  .gor-default-banner { min-height: 460px; padding-top: 100px; }
}

/* ============================================================
   Utility templates — 404, archive, category, tag, search
   ============================================================
   These share .gor-default-banner / .gor-default-content above (same
   banner + content visual language as the default page template) plus
   the rules below for the pieces unique to them: the search form, the
   post-list/archive cards, pagination, and the 404 CTA buttons.
   ============================================================ */

.gor-search-form {
  display: flex;
  align-items: stretch;
  max-width: 480px;
  margin: 0 auto;
  border: var(--border-thick) solid var(--gor-black);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: #fff;
}
.gor-search-input {
  flex: 1;
  border: 0;
  padding: 0.85rem 1rem;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--gor-black);
  outline: none;
  background: transparent;
}
.gor-search-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  border: 0;
  border-left: var(--border-thick) solid var(--gor-black);
  background: var(--gor-orange);
  color: #fff;
  cursor: pointer;
  transition: filter var(--dur-fast) var(--ease-out);
}
.gor-search-submit:hover { filter: brightness(1.08); }

.gor-404-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin: 2rem 0;
}
.gor-404-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem 1.75rem;
  border-radius: 2px;
  font-family: var(--font-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.88rem;
  text-decoration: none;
  transition: filter var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.gor-404-btn--primary { background: var(--gor-orange); color: #fff !important; border: none; text-decoration: none !important; }
.gor-404-btn--primary:hover { filter: brightness(1.05); transform: translateY(-2px); }
.gor-404-btn--secondary { background: transparent; color: var(--gor-black) !important; border: 2px solid var(--gor-black); text-decoration: none !important; }
.gor-404-btn--secondary:hover { background: var(--gor-black); color: #fff !important; }
.gor-404-links {
  margin-top: 1.5rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--ink-600);
}
.gor-404-links a { color: var(--gor-orange); text-decoration: underline; text-underline-offset: 2px; }

.gor-archive-list {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}
.gor-archive-card {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  padding-bottom: 1.75rem;
  border-bottom: 1px solid var(--steel-200);
}
.gor-archive-card:last-child { border-bottom: 0; padding-bottom: 0; }
.gor-archive-card .gor-archive-card-thumb {
  display: block;
  flex-shrink: 0;
  width: 220px;
  height: 150px;
  object-fit: cover;
  border-radius: 4px;
  margin: 0;
}
.gor-archive-card-body { flex: 1; min-width: 0; }
.gor-archive-card-meta {
  font-family: var(--font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  color: var(--gor-orange);
  margin-bottom: 0.4rem;
}
.gor-archive-card-title {
  margin: 0 0 0.6rem;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: clamp(1.15rem, 1.9vw, 1.4rem);
  line-height: 1.2;
}
.gor-archive-card-title a { color: var(--gor-black); text-decoration: none; }
.gor-archive-card-title a:hover { color: var(--gor-orange); }
.gor-archive-card-excerpt {
  font-family: var(--font-body);
  font-size: 0.98rem;
  line-height: var(--body-line);
  color: var(--ink-600);
  margin: 0 0 0.6rem;
}
.gor-archive-card-more {
  font-family: var(--font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.78rem;
  color: var(--gor-orange);
  text-decoration: none;
}
.gor-archive-card-more:hover { text-decoration: underline; }

@media (max-width: 640px) {
  .gor-archive-card { flex-direction: column; }
  .gor-archive-card .gor-archive-card-thumb { width: 100%; height: 200px; }
}

/* ---------- Main content + sidebar two-column layout ---------- */
.gor-archive-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: clamp(2.5rem, 5vw, 4rem);
  align-items: start;
}
.gor-archive-main { min-width: 0; }
.gor-sidebar { min-width: 0; }
.gor-widget {
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--steel-200);
}
.gor-widget:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.gor-widget .widgettitle,
.gor-widget .widget-title {
  margin: 0 0 1rem;
  font-family: var(--font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.88rem;
  color: var(--gor-black);
  padding-bottom: 0.6rem;
  border-bottom: 2px solid var(--gor-orange);
}
.gor-widget ul { list-style: none; margin: 0; padding: 0; }
.gor-widget li { padding: 0.5rem 0; border-bottom: 1px solid var(--steel-100); font-family: var(--font-body); font-size: 0.95rem; }
.gor-widget li:last-child { border-bottom: 0; }
.gor-widget a { color: var(--ink-600); text-decoration: none; }
.gor-widget a:hover { color: var(--gor-orange); }
.gor-widget p { font-family: var(--font-body); font-size: 0.95rem; line-height: var(--body-line); color: var(--ink-600); }
.gor-widget .gor-search-form { max-width: none; }

@media (max-width: 900px) {
  .gor-archive-layout { grid-template-columns: 1fr; }
  .gor-sidebar { border-top: 1px solid var(--steel-200); padding-top: 2.5rem; margin-top: 1rem; }
}

.gor-archive-empty {
  max-width: 480px;
  margin: 0 auto;
  text-align: center;
  color: var(--ink-600);
  font-family: var(--font-body);
}

.gor-archive-pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 2.5rem;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}
.gor-archive-pagination a,
.gor-archive-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.4rem;
  height: 2.4rem;
  padding: 0 0.7rem;
  border: 1px solid var(--steel-200);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--gor-black);
  text-decoration: none;
}
.gor-archive-pagination a:hover { border-color: var(--gor-orange); color: var(--gor-orange); }
.gor-archive-pagination .current { background: var(--gor-orange); border-color: var(--gor-orange); color: #fff; }

/* ============================================================
   Gorilla Form Page — CTA + form section (below the default banner)
   ============================================================ */

.gor-cta-section {
  background: rgb(236, 234, 231);
  padding: clamp(4rem, 7vw, 6.5rem) 0;
}
.gor-cta-grid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
}
@media (max-width: 960px) {
  .gor-cta-grid { grid-template-columns: 1fr !important; }
}

.gor-cta-eyebrow {
  font-family: var(--font-body);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 0.78rem;
  color: var(--gor-orange);
  margin: 0 0 1rem;
}
.gor-cta-heading {
  font-family: var(--font-body);
  font-weight: 700;
  text-transform: uppercase;
  line-height: 0.94;
  letter-spacing: 0.01em;
  margin: 0 0 1.25rem;
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  color: rgb(17, 17, 17);
}
.gor-cta-rule {
  width: 200px;
  height: 4px;
  background: var(--gor-orange);
  margin: 0 0 1.75rem;
}
.gor-cta-intro {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: rgb(42, 42, 42);
  margin: 0 0 2.25rem;
  max-width: 46ch;
}

.gor-cta-info-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}
.gor-cta-info-item { display: flex; align-items: center; gap: 1rem; }
.gor-cta-info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: transparent;
  border: 2px solid var(--gor-orange);
  border-radius: 2px;
  flex-shrink: 0;
}
.gor-cta-info-icon-svg { width: 22px; height: 22px; color: var(--gor-orange); }
.gor-cta-info-text { font-family: var(--font-body); }
.gor-cta-info-label {
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.68rem;
  color: rgb(107, 107, 107);
}
.gor-cta-info-value {
  font-weight: 700;
  font-size: 1.2rem;
  color: rgb(17, 17, 17);
}
.gor-cta-info-value--link { text-decoration: none; }

.gor-cta-form-card {
  background: rgb(51, 51, 51);
  border: 2px solid rgb(17, 17, 17);
  border-radius: 4px;
  padding: clamp(1.75rem, 3vw, 2.75rem);
  box-shadow: 8px 8px 0 var(--gor-orange);
}
/* When falling back to the_content() inside the (dark) form card, make
   sure default WYSIWYG text stays readable against the dark background. */
.gor-cta-form-card p,
.gor-cta-form-card li,
.gor-cta-form-card h1,
.gor-cta-form-card h2,
.gor-cta-form-card h3,
.gor-cta-form-card h4 { color: #fff; }
.gor-cta-form-card a:not(.frm_button_submit) { color: var(--gor-orange); }
