/*
 Theme Name: Visionography Media Child
 Theme URI: https://visionographymedia.com
 Description: Child theme for Divi used for Visionography Media customizations.
 Author: Jesse Dean
 Author URI: https://visionographymedia.com
 Template: Divi
 Version: 1.0.0
*/

/* =======================================
   Visionography Media — Global Variables
   ======================================= */
:root {
  --vm-gold: #d6b46e;
  --vm-copper: #b86f50;
  --vm-teal: #2EC4C7;
  --vm-orange: #fc9f00;
  --vm-neutral: #F7F5F2;

  /* Typography neutrals */
  --vm-heading: #222222;
  --vm-body: #444444;
}

/* =======================================
   Visionography UI Helper
   Focus ring, reduced motion, icon spacing
   ======================================= */

/* Focus ring (accessible) */
.et_pb_button:focus,
.et_pb_button:focus-visible {
  outline: 2px solid var(--vm-gold) !important;
  outline-offset: 2px;
}

/* Reduced motion respect */
@media (prefers-reduced-motion: reduce) {
  .et_pb_button {
    transition: none !important;
  }
}

/* Icon spacing utility (if using icons) */
.btn-icon-left .et_pb_button {
  padding-left: 40px !important;
}
.btn-icon-right .et_pb_button {
  padding-right: 40px !important;
}

/* ===========================================
   Visionography Button Styling (Unified)
   Rounded pill shape + soft hover glow
   =========================================== */

/* General shape and text */
.et_pb_button {
  border-radius: 999px !important;        /* Fully rounded sides */
  text-transform: uppercase;
  font-weight: 600;                       /* Semi-bold */
  letter-spacing: 0.5px;
  transition: all 0.3s ease !important;   /* Smooth hover animation */
}

/* Soft outer-glow hover effect */
.et_pb_button:hover {
  transform: scale(1.03);
  box-shadow: 0 0 18px rgba(0, 0, 0, 0.25);
}

/* Footer Text & Blurb links — normal & visited first, hover last (LVH order) */
.et-l--footer .et_pb_text .et_pb_text_inner a,
.et-l--footer .et_pb_blurb .et_pb_blurb_description a,
.et-l--footer .et_pb_blurb .et_pb_module_header a {
  color: var(--vm-gold) !important;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.3s ease;
}

.et-l--footer .et_pb_text .et_pb_text_inner a:visited,
.et-l--footer .et_pb_blurb .et_pb_blurb_description a:visited,
.et-l--footer .et_pb_blurb .et_pb_module_header a:visited {
  color: var(--vm-gold) !important;
}

.et-l--footer .et_pb_text .et_pb_text_inner a:hover,
.et-l--footer .et_pb_blurb .et_pb_blurb_description a:hover,
.et-l--footer .et_pb_blurb .et_pb_module_header a:hover {
  color: var(--vm-copper) !important;
}

/* Footer link spacing if each link is its own paragraph */
.et-l--footer .et_pb_text .et_pb_text_inner p {
  margin: 0.25em 0;
  line-height: 1.25;
}
.et-l--footer .et_pb_text .et_pb_text_inner p a {
  display: inline-block;
  padding: 0.05em 0;
}

/* ================================
   Visionography Buttons (System)
   ================================ */

/* Base button */
.vbtn {
  display: inline-block;
  padding: 0.75em 1.8em;
  border-radius: 999px;              /* pill by default */
  border: 2px solid transparent;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.06em;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.25s ease;
  font-size: 0.9rem;
}

/* Sizes */
.vbtn-sm { padding: 0.55em 1.4em; font-size: 0.8rem; }
.vbtn-md { padding: 0.75em 1.8em; font-size: 0.9rem; }   /* default */
.vbtn-lg { padding: 0.95em 2.2em; font-size: 1rem; }

/* Shapes */
.vbtn-square { border-radius: 0; }
.vbtn-round  { border-radius: 999px; }

/* ========== SOLID FILLS ========== */

/* Solid – Gold */
.vbtn-solid-gold {
  background-color: var(--vm-gold);
  border-color: var(--vm-gold);
  color: #ffffff;
}
.vbtn-solid-gold:hover {
  box-shadow: 0 0 14px rgba(214, 180, 110, 0.6);
  transform: translateY(-1px);
}

/* Solid – Copper */
.vbtn-solid-copper {
  background-color: var(--vm-copper);
  border-color: var(--vm-copper);
  color: #ffffff;
}
.vbtn-solid-copper:hover {
  box-shadow: 0 0 14px rgba(184, 111, 80, 0.6);
  transform: translateY(-1px);
}

/* Solid – Teal (Turquoise) */
.vbtn-solid-teal {
  background-color: var(--vm-teal);
  border-color: var(--vm-teal);
  color: #ffffff;
}
.vbtn-solid-teal:hover {
  box-shadow: 0 0 14px rgba(46, 196, 199, 0.6);
  transform: translateY(-1px);
}

/* Solid – Orange */
.vbtn-solid-orange {
  background-color: var(--vm-orange);
  border-color: var(--vm-orange);
  color: #111111;
}
.vbtn-solid-orange:hover {
  box-shadow: 0 0 14px rgba(252, 159, 0, 0.6);
  transform: translateY(-1px);
}

/* Solid – White */
.vbtn-solid-white {
  background-color: #ffffff;
  border-color: #ffffff;
  color: #111111;
}
.vbtn-solid-white:hover {
  box-shadow: 0 0 14px rgba(255, 255, 255, 0.7);
  transform: translateY(-1px);
}

/* ========== OUTLINES ========== */

/* Outline – Gold */
.vbtn-outline-gold {
  background: transparent;
  border-color: var(--vm-gold);
  color: var(--vm-gold);
}
.vbtn-outline-gold:hover {
  background-color: var(--vm-gold);
  color: #ffffff;
  box-shadow: 0 0 14px rgba(214, 180, 110, 0.6);
}

/* Outline – Copper */
.vbtn-outline-copper {
  background: transparent;
  border-color: var(--vm-copper);
  color: var(--vm-copper);
}
.vbtn-outline-copper:hover {
  background-color: var(--vm-copper);
  color: #ffffff;
  box-shadow: 0 0 14px rgba(184, 111, 80, 0.6);
}

/* Outline – Teal */
.vbtn-outline-teal {
  background: transparent;
  border-color: var(--vm-teal);
  color: var(--vm-teal);
}
.vbtn-outline-teal:hover {
  background-color: var(--vm-teal);
  color: #ffffff;
  box-shadow: 0 0 14px rgba(46, 196, 199, 0.6);
}

/* Outline – Orange */
.vbtn-outline-orange {
  background: transparent;
  border-color: var(--vm-orange);
  color: var(--vm-orange);
}
.vbtn-outline-orange:hover {
  background-color: var(--vm-orange);
  color: #111111;
  box-shadow: 0 0 14px rgba(252, 159, 0, 0.6);
}

/* Outline – White (for dark backgrounds) */
.vbtn-outline-white {
  background: transparent;
  border-color: #ffffff;
  color: #ffffff;
}
.vbtn-outline-white:hover {
  background-color: #ffffff;
  color: #111111;
  box-shadow: 0 0 18px rgba(255, 255, 255, 0.55);
}

/* ========== TEXT COLOR UTILITIES ========== */

.vbtn-text-white  { color: #ffffff !important; }
.vbtn-text-dark   { color: #111111 !important; }
.vbtn-text-gold   { color: var(--vm-gold) !important; }
.vbtn-text-copper { color: var(--vm-copper) !important; }
.vbtn-text-teal   { color: var(--vm-teal) !important; }
.vbtn-text-orange { color: var(--vm-orange) !important; }

/* ========== SPECIAL: GRADIENT CTA ========== */

.vbtn-gradient-gold {
  background: transparent;
  border-color: var(--vm-gold);
  background-image: linear-gradient(
    90deg,
    var(--vm-copper) 0%,
    var(--vm-gold) 40%,
    var(--vm-teal) 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.vbtn-gradient-gold:hover {
  background-position: right center;
  background-color: var(--vm-gold);
  -webkit-text-fill-color: #ffffff;
  color: #ffffff;
  box-shadow: 0 0 14px rgba(214, 180, 110, 0.6);
}

/* Optional glow utility */
.vbtn-glow {
  box-shadow: 0 0 18px rgba(255, 255, 255, 0.35);
}
.vbtn-glow:hover {
  box-shadow: 0 0 22px rgba(255, 255, 255, 0.55);
}

/* Focus ring for vbtns */
.vbtn:focus,
.vbtn:focus-visible {
  outline: 2px solid var(--vm-gold) !important;
  outline-offset: 2px;
}

/* =========================
   Agent Card Layout
   ========================= */
.vm-agent-block {
  padding: 20px;
  border-radius: 12px;
  background: #f8f8f8;
  margin: 30px 0;
}

.vm-agent-block-inner {
  display: flex;
  gap: 30px;
  align-items: flex-start;
}

.vm-agent-headshot {
  width: 150px;
  height: 150px;
  border-radius: 12px;
  object-fit: cover;
}

.vm-agent-name {
  margin-bottom: 5px;
  font-size: 24px;
  font-weight: 700;
}

.vm-agent-tagline {
  font-size: 16px;
  margin-bottom: 15px;
  color: #777;
}

/* Brokerage */
.vm-agent-brokerage {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 15px;
}

.vm-agent-brokerage-logo {
  height: 40px;
  width: auto;
}

.vm-agent-contact li {
  list-style: none;
  margin-bottom: 6px;
}

/* Social Links */
.vm-agent-social-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.vm-agent-social-links li {
  margin-bottom: 8px;
}

.vm-agent-social-links a {
  color: var(--vm-teal);
  text-decoration: none;
  font-weight: 600;
}

/* Testimonials */
.vm-agent-testimonial {
  padding: 20px;
  margin-bottom: 25px;
  background: #f8f8f8;
  border-radius: 12px;
}

.vm-agent-testimonial-quote {
  font-style: italic;
  margin-bottom: 12px;
}

/* =========================
   VM Global Link Colors
   ========================= */
body a {
  color: var(--vm-teal);
  text-decoration: none;
  transition: color 0.25s ease;
}

body a:hover {
  color: var(--vm-gold);
}

/* =============================================
   VM Dark Background Link Style Variant
   Usage: Add class "vm-dark-section" to section
   ============================================= */
.vm-dark-section a {
  color: var(--vm-gold);
  text-decoration: none;
}

.vm-dark-section a:hover {
  color: var(--vm-teal);
  text-decoration: none;
}

/* =========================
   VM Typography Helpers
   ========================= */

/* 1. Blockquote / Testimonial */
.vm-quote {
  font-style: italic;
  font-size: 1.05em;
  line-height: 1.7;
  color: var(--vm-body);
  border-left: 4px solid var(--vm-gold);
  padding: 0.75em 1.25em;
  margin: 1.5em 0;
  background-color: rgba(247, 245, 242, 0.7); /* subtle neutral */
}

.vm-quote cite {
  display: block;
  margin-top: 0.5em;
  font-style: normal;
  font-weight: 600;
  color: var(--vm-heading);
}

/* 2. Drop-cap for editorial paragraphs */
.vm-dropcap:first-letter {
  float: left;
  font-family: "Montserrat", sans-serif;
  font-size: 3.2em;
  line-height: 0.9;
  font-weight: 700;
  padding-right: 0.1em;
  padding-top: 0.08em;
  color: var(--vm-gold);
}

/* 3. Small / meta text */
.vm-text-small {
  font-size: 0.85em;
  line-height: 1.6;
  color: var(--vm-body);
}

.vm-text-meta {
  font-size: 0.8em;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #777777;
}

/* 4. Callout / note box */
.vm-callout {
  padding: 1.1em 1.4em;
  border-radius: 8px;
  border-left: 4px solid var(--vm-gold);
  background: rgba(214, 180, 110, 0.08); /* soft gold tint */
  margin: 1.5em 0;
}

.vm-callout-strong {
  border-left-color: var(--vm-teal);
  background: rgba(46, 196, 199, 0.08);
}

/* Optional: emphasize title inside callout */
.vm-callout-title {
  font-weight: 600;
  font-family: "Montserrat", sans-serif;
  margin-bottom: 0.25em;
  display: block;
}

/* =========================================================
   Visionography Media – Spacing System
   Sections • Rows • Columns (mobile-first)
   ========================================================= */

/* ---------- SECTION PADDING (top + bottom) ---------- */
/* Phone defaults */
.vm-section-xl {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}

.vm-section-l {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.vm-section-m {
  padding-top: 2.5rem !important;
  padding-bottom: 2.5rem !important;
}

.vm-section-s {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

/* No vertical padding (for edge-to-edge bands) */
.vm-section-none {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Tablet overrides (≥ 768px) */
@media (min-width: 768px) {
  .vm-section-xl {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
  }

  .vm-section-l {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
  }

  .vm-section-m {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }

  .vm-section-s {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
}

/* Desktop overrides (≥ 981px) */
@media (min-width: 981px) {
  .vm-section-xl {
    padding-top: 9rem !important;
    padding-bottom: 9rem !important;
  }

  .vm-section-l {
    padding-top: 7rem !important;
    padding-bottom: 7rem !important;
  }

  .vm-section-m {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
  }

  .vm-section-s {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
  }
}


/* ---------- ROW PADDING (inner bands) ---------- */

/* Phone defaults */
.vm-row-xl {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}

.vm-row-l {
  padding-top: 2.5rem !important;
  padding-bottom: 2.5rem !important;
}

.vm-row-m {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

.vm-row-s {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

.vm-row-none {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Tablet */
@media (min-width: 768px) {
  .vm-row-xl {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }

  .vm-row-l {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }

  .vm-row-m {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }

  .vm-row-s {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
}

/* Desktop */
@media (min-width: 981px) {
  .vm-row-xl {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
  }

  .vm-row-l {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }

  .vm-row-m {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }

  .vm-row-s {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }
}


/* =========================================================
   Visionography Media – Hero Layout Preset
   Uses spacing utilities + simple layout helpers
   ========================================================= */

/* Base hero section */
.vm-hero {
  position: relative;
  display: block;
}

/* Legacy max-width container (still safe to use) */
.vm-hero-content {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* New max-width inner wrapper for hero text */
.vm-hero-inner {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 4vw;
  padding-right: 4vw;
}

/* Align hero content left on larger screens, centered on mobile */
.vm-hero-align-center {
  text-align: center;
}

@media (min-width: 981px) {
  .vm-hero-align-left-desktop {
    text-align: left;
  }
}

/* Spacing between hero elements */
.vm-hero-kicker {
  margin-bottom: 0.5rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-size: 0.78rem;
}

.vm-hero-heading {
  margin-bottom: 0.75rem;
}

.vm-hero-subheading {
  margin-bottom: 1.5rem;
}

.vm-hero-body {
  margin-bottom: 2rem;
}

/* Button row */
.vm-hero-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}

@media (min-width: 981px) {
  .vm-hero-buttons-left {
    justify-content: flex-start;
  }
}

/* Optional: put hero on a darker background by default */
.vm-hero.vm-dark {
  color: var(--vm-neutral, #F7F5F2);
}

/* VM Utility Reference – Admin Page Styles */
.vm-utility-reference h1,
.vm-utility-reference h2,
.vm-utility-reference h3 {
  margin-top: 1.2em;
  margin-bottom: 0.4em;
}
.vm-utility-reference p {
  margin: 0.3em 0 0.6em;
}
.vm-utility-reference hr {
  margin: 1.2em 0;
  border: none;
  border-top: 1px solid rgba(0,0,0,0.15);
}
.vm-utility-reference .vm-toc ul {
  list-style: none;
  padding-left: 0;
  margin: 0.5em 0 0.5em;
}
.vm-utility-reference .vm-toc li {
  margin-bottom: 0.25em;
}
.vm-utility-reference .vm-toc a {
  text-decoration: none;
  color: inherit;
  border-bottom: 1px dotted rgba(0,0,0,0.3);
}
.vm-utility-reference .vm-toc a:hover {
  border-bottom-style: solid;
}
.vm-utility-reference .vm-color-row {
  display: flex;
  align-items: center;
  margin-bottom: 0.4em;
  gap: 0.75em;
  flex-wrap: wrap;
}
.vm-utility-reference .vm-swatch {
  display: inline-block;
  width: 48px;
  height: 18px;
  border-radius: 3px;
  border: 1px solid rgba(0,0,0,0.2);
}
.vm-utility-reference .vm-note {
  font-size: 0.9em;
  opacity: 0.8;
}
.vm-utility-reference .vm-code-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0.3em 0 0.8em;
}
.vm-utility-reference .copy-code {
  cursor: pointer;
  padding: 3px 7px;
  border-radius: 4px;
  background: #111;
  color: #f5f5f5;
  font-family: monospace;
  font-size: 0.86em;
  display: inline-block;
  white-space: nowrap;
}
.vm-utility-reference .copy-code:hover {
  background: #333;
}

/* =========================================================
   Visionography Media – Background Utilities
   Apply to Sections / Rows / Columns for instant theme colors
   ========================================================= */

/* ----- Base Safety Reset ----- */
.vm-bg,
[class*="vm-bg-"] {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: inherit;
}

/* =========================================================
   SOLID COLOR BACKGROUNDS
   ========================================================= */

.vm-dark {
  background-color: #0f0f0f !important;
  color: var(--vm-neutral) !important;
}

.vm-light {
  background-color: var(--vm-neutral) !important;
  color: #111 !important;
}

.vm-gold {
  background-color: var(--vm-gold) !important;
  color: #111 !important;
}

.vm-copper {
  background-color: var(--vm-copper) !important;
  color: #111 !important;
}

.vm-teal {
  background-color: var(--vm-teal) !important;
  color: #ffffff !important;
}

.vm-orange {
  background-color: var(--vm-orange) !important;
  color: #111 !important;
}


/* =========================================================
   DARK GRADIENTS (Hero / CTA Ready)
   ========================================================= */

/* Soft black → transparent */
.vm-gradient-dark-soft {
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.6) 0%,
    rgba(0, 0, 0, 0.0) 100%
  ) !important;
}

/* Strong black overlay */
.vm-gradient-dark-strong {
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.75) 0%,
    rgba(0, 0, 0, 0.1) 100%
  ) !important;
}

/* Diagonal hero-style gradient */
.vm-gradient-diagonal-dark {
  background: linear-gradient(
    135deg,
    rgba(0, 0, 0, 0.85) 5%,
    rgba(0, 0, 0, 0.55) 45%,
    rgba(0, 0, 0, 0.1) 95%
  ) !important;
}


/* =========================================================
   BRAND GRADIENTS
   ========================================================= */

.vm-gradient-brand-gold {
  background: linear-gradient(
    135deg,
    var(--vm-gold),
    var(--vm-copper)
  ) !important;
  color: #111 !important;
}

.vm-gradient-brand-teal {
  background: linear-gradient(
    135deg,
    var(--vm-teal),
    #0aaec0
  ) !important;
  color: #ffffff !important;
}

.vm-gradient-brand-dark {
  background: linear-gradient(
    135deg,
    #000000,
    #1a1a1a
  ) !important;
  color: var(--vm-neutral) !important;
}

/* =========================================================
   BACKGROUND IMAGE UTILITIES
   ========================================================= */

.vm-bg-cover {
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

.vm-bg-fixed {
  background-attachment: fixed !important;
}

.vm-bg-darken {
  position: relative;
}

.vm-bg-darken::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
  pointer-events: none;
  z-index: 0;
}

/* Ensure modules stack above darken overlay */
.vm-bg-darken > * {
  position: relative;
  z-index: 2;
}

/* ===========================================================
   Visionography Media – Heading Utility Classes
   Matches VM Divi Heading Presets (H1–H6)
   =========================================================== */

/* Reset + base */
.vm-h1, .vm-h2, .vm-h3, .vm-h4, .vm-h5, .vm-h6 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  margin-top: 0;
  margin-bottom: 0.5em;
  line-height: 1.1;
  letter-spacing: 0.02em;
  display: block;
}

/* H1 – Hero & Page Title */
.vm-h1 {
  font-size: 48px;
  line-height: 1.1;
}

@media (max-width: 980px) {
  .vm-h1 { font-size: 40px; }
}
@media (max-width: 767px) {
  .vm-h1 { font-size: 32px; }
}

/* H2 – Section Title */
.vm-h2 {
  font-size: 38px;
  line-height: 1.15;
}

@media (max-width: 980px) {
  .vm-h2 { font-size: 32px; }
}
@media (max-width: 767px) {
  .vm-h2 { font-size: 26px; }
}

/* H3 – Subheading */
.vm-h3 {
  font-size: 30px;
  line-height: 1.2;
}

@media (max-width: 980px) {
  .vm-h3 { font-size: 26px; }
}
@media (max-width: 767px) {
  .vm-h3 { font-size: 22px; }
}

/* H4 – Card Title */
.vm-h4 {
  font-size: 24px;
  line-height: 1.25;
}

@media (max-width: 980px) {
  .vm-h4 { font-size: 22px; }
}
@media (max-width: 767px) {
  .vm-h4 { font-size: 20px; }
}

/* H5 – Small Title */
.vm-h5 {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
}

@media (max-width: 980px) {
  .vm-h5 { font-size: 18px; }
}
@media (max-width: 767px) {
  .vm-h5 { font-size: 16px; }
}

/* H6 – Eyebrow / Kicker */
.vm-h6 {
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  line-height: 1.3;
}

/* Optional: gold or teal kicker variants */
.vm-h6-gold {
  color: var(--vm-gold);
}
.vm-h6-teal {
  color: var(--vm-teal);
}

/* =======================================================
   Visionography Media – Hero Stagger + Motion (Builder-Safe)
   ======================================================= */

/* Default (builder): visible, no hero fade animation reset */
.vm-hero-line1,
.vm-hero-line2,
.vm-hero-line3,
.vm-hero-body,
.vm-hero-cta-group {
  display: block;
  opacity: 1;
  transform: none;
  /* Do NOT reset animation here – allows shimmer on line 2 */
}


/* Front-end only: fade-up animation + stagger
   (accent line 2 excluded so shimmer runs freely) */
body:not(.et-fb) .vm-hero-line1,
body:not(.et-fb) .vm-hero-line3,
body:not(.et-fb) .vm-hero-body,
body:not(.et-fb) .vm-hero-cta-group {
  opacity: 0;
  transform: translateY(18px);
  animation-name: vm-hero-fade-up;
  animation-duration: 0.7s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
}


/* Stagger positions */
body:not(.et-fb) .vm-hero-line1 {
  text-align: left;
  animation-delay: 0.05s;
  margin-bottom: 0.2em;
}

body:not(.et-fb) .vm-hero-line2 {
  text-align: center;
  animation-delay: 0.25s;
  margin-bottom: 0.2em;
}

body:not(.et-fb) .vm-hero-line3 {
  text-align: right;
  animation-delay: 0.45s;
  margin-bottom: 0.4em;
}

body:not(.et-fb) .vm-hero-body {
  animation-delay: 0.60s;
}

body:not(.et-fb) .vm-hero-cta-group {
  animation-delay: 0.75s;
}

/* Keyframes */
@keyframes vm-hero-fade-up {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Mobile alignment reset */
@media (max-width: 980px) {
  .vm-hero-line1,
  .vm-hero-line2,
  .vm-hero-line3 {
    text-align: center;
    margin-left: 0;
    margin-right: 0;
  }
}

/* Reduced motion: disable animations */
@media (prefers-reduced-motion: reduce) {
  .vm-hero-line1,
  .vm-hero-line3,
  .vm-hero-body,
  .vm-hero-cta-group {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* =======================================================
   Hero Headings – ACF + Fallback hero
   (Match static hero look)
   ======================================================= */

/* Shared hero heading base */
.vm-hero-heading {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  line-height: 1.1;
  color: #ffffff;
}

/* Main line – "Visionography Media" */
.vm-hero-heading.vm-hero-line1 {
  font-size: clamp(3.0rem, 5vw, 4.5rem);
  margin-bottom: 0.15em;
  text-shadow: 0.08em 0.08em 0.35em rgba(0, 0, 0, 0.75);
}

/* Accent line – "Media that Moves"
   (size & spacing only – gradient comes from .gradient-text-electric-smooth) */
.vm-hero-heading.vm-hero-line2 {
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  margin-bottom: 0.25em;
}

/* Subheading – "Serving the Wasatch Front" */
.vm-hero-subheading {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: clamp(1.8rem, 3.2vw, 3.0rem);
  line-height: 1.15em;
  color: #ffffff;
  text-shadow: none;
}

/* Desktop “floating” margins so left / center / right lines align nicely */
@media (min-width: 981px) {
  .vm-hero-line1 {
    max-width: 26ch;
    margin-left: 6vw;
    margin-right: auto;
  }

  .vm-hero-line2 {
    max-width: 30ch;
    margin-left: auto;
    margin-right: auto;
  }

  .vm-hero-line3 {
    max-width: 26ch;
    margin-left: auto;
    margin-right: 6vw;
  }
}

/* CTA group wrapper (applied to "Hero – CTA Group Open") */
.vm-hero-cta-group {
  margin-top: 1.8rem;
}

/* Keep accent span from collapsing */
.vm-hero-line2 span {
  display: inline-block;
  min-height: 1em;
}

/* =======================================
   ACF Hero Accent – centering & no hop
   ======================================= */

/* Center the accent line inside its module
   (Text Module with class vm-hero-line2-module) */
.vm-hero-line2-module p {
  text-align: center;
}

/* Neutralize the fade-up offsets ONLY (no animation overrides)
   so the line is visible and steady, but shimmer still runs */
.vm-hero .vm-hero-heading.vm-hero-line2 {
  opacity: 1;
  transform: none;
  text-align: center;
}

/* =======================================
   Hero Accent Line – hard centering
   (ACF Text Module: vm-hero-line2-module)
   ======================================= */

.vm-hero-line2-module .et_pb_text_inner,
.vm-hero-line2-module .et_pb_text_inner p {
  text-align: center !important;
}

/* =======================================
   Hero – Body text styling
   ======================================= */

.vm-hero-body {
  margin-bottom: 2rem;
  font-family: 'Lato', sans-serif;   /* or your body font */
  font-size: 1.1rem;
  line-height: 1.6;
  color: #ffffff;
  max-width: 48ch;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* =======================================================
   VM Hero – Vertical rhythm & spacing refinements
   (ACF + static hero)
   ======================================================= */

/* Top kicker spacing */
.vm-hero-kicker {
  margin-bottom: 0.35rem;
}

/* Main title – slightly tighter under kicker */
.vm-hero-heading.vm-hero-line1 {
  margin-bottom: 0.1em;
}

/* Accent line – a bit closer to line 1 */
.vm-hero-heading.vm-hero-line2 {
  margin-bottom: 0.15em;
}

/* Subheading – comfortable gap before body */
.vm-hero-subheading.vm-hero-line3 {
  margin-bottom: 0.6em;
}

/* Body – slightly reduced space before buttons */
.vm-hero-body {
  margin-top: 0.1em;
  margin-bottom: 1.4rem;
}

/* CTA group – keep buttons close to body, not floating away */
.vm-hero-cta-group {
  margin-top: 0.5rem;
}

/* Mobile: stack everything tighter and centered */
@media (max-width: 980px) {
  .vm-hero-line1,
  .vm-hero-line2,
  .vm-hero-line3,
  .vm-hero-body,
  .vm-hero-cta-group {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  .vm-hero-heading.vm-hero-line1 {
    margin-bottom: 0.2em;
  }

  .vm-hero-heading.vm-hero-line2 {
    margin-bottom: 0.2em;
  }

  .vm-hero-subheading.vm-hero-line3 {
    margin-bottom: 0.5em;
  }

  .vm-hero-body {
    margin-bottom: 1.2rem;
  }
}

/* Hero CTA button group layout */
.vm-hero-cta-group {
  display: flex;
  flex-wrap: wrap;            /* lets them wrap if space is tight */
  justify-content: center;    /* center the pair as a group */
  align-items: center;
  gap: 1.5em;                 /* desktop spacing between buttons */
  text-align: center;         /* keeps buttons centered if they wrap */
}

/* Tablet: slightly tighter gap */
@media (max-width: 980px) {
  .vm-hero-cta-group {
    gap: 1.25em;
  }
}

/* Phone: stack buttons vertically with nice spacing */
@media (max-width: 767px) {
  .vm-hero-cta-group {
    flex-direction: column;
    gap: 0.9em;               /* vertical space between stacked buttons */
  }
}

/* ============================
   VM Hero – Typography Tuning
   ============================ */

/* Accent line – make it dominant */
.vm-hero .gradient-text-electric-smooth {
  font-size: clamp(2.4rem, 3vw + 1rem, 3.6rem);
  font-weight: 700;
  line-height: 1.1;
}

/* Subheading – smaller, supportive line */
.vm-hero-subheading {
  font-size: clamp(1rem, 1vw + 0.4rem, 1.4rem);
  font-weight: 500;
  line-height: 1.3;
  opacity: 0.9;
}

/* ============================================
   VISIONOGRAPHY MEDIA – HERO TYPOGRAPHY SCALE
   ============================================ */

/* ACCENT LINE - Dominant (1.5x H1) */
.vm-hero .gradient-text-electric-smooth {
    font-size: clamp(3.2rem, 5vw + 1rem, 5rem);
    font-weight: 700;
    line-height: 1.1;
    display: inline-block;
}

/* SUBHEADING - ~Half the size of Main Title */
.vm-hero-subheading {
    font-size: clamp(1.4rem, 1.5vw + 0.8rem, 2rem);
    font-weight: 500;
    line-height: 1.3;
    opacity: 0.9;
}

/* ACCENT LINE – 2x Main Title Scale */
.vm-hero .gradient-text-electric-smooth {
    font-size: clamp(3.6rem, 6vw + 1rem, 6rem);
    font-weight: 700;
    line-height: 1.1;
    display: inline-block;
}

/* =======================================================
   VISIONOGRAPHY MEDIA – HERO ALIGNMENT (LEFT / CENTER / RIGHT)
   ======================================================= */

/* 1) Kicker + Main Title = LEFT aligned */
.vm-hero-kicker,
.vm-hero-title {
    text-align: left;
    margin-left: 0 !important;
    margin-right: auto !important;
    display: block;
}

/* 2) Accent Line = CENTER aligned */
.vm-hero-accent {
    text-align: center;
    margin-left: auto !important;
    margin-right: auto !important;
    display: block;
}

/* 3) Subheading = RIGHT aligned, symmetrical to Main Title’s left shift */
.vm-hero-subheading {
    text-align: right;
    margin-left: auto !important;
    margin-right: 0 !important;
    display: block;
    max-width: fit-content;
}

/* MOBILE – Everything recenters to avoid awkward staggering */
@media (max-width: 980px) {
    .vm-hero-kicker,
    .vm-hero-title,
    .vm-hero-accent,
    .vm-hero-subheading {
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* ACCENT LINE – TRUE CENTER ALIGNMENT */
.vm-hero-accent {
    display: block;
    width: 100%;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.vm-hero-cta-group {
    margin-top: auto;
    padding-top: 2rem;  /* gives a little breathing room above buttons */
}

/* Make the hero column a flex stack so we can anchor the CTA near the bottom */
.vm-hero-column {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    /* Taller hero so CTAs sit closer to the bottom */
    min-height: clamp(650px, 90vh, 1100px);
}

/* ==========================================================
   HERO OVERLAY SYSTEM — BASE SETUP
   ========================================================== */

.hero-overlay {
  position: relative; /* Ensures ::before positions correctly */
  z-index: 0;
}

.hero-overlay::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1; /* Sits above image but below text */
  background: none;
  transition: background 0.3s ease;
}

/* ----------------------------------------------------------
   1. No Overlay
   ---------------------------------------------------------- */
.hero-overlay.none::before {
  background: none !important;
}

/* ----------------------------------------------------------
   2. Dark UltraSoft (very light darkening)
   ---------------------------------------------------------- */
.hero-overlay.dark-ultrasoft::before {
  background: rgba(0, 0, 0, 0.12);
}

/* ----------------------------------------------------------
   3. Dark Soft
   ---------------------------------------------------------- */
.hero-overlay.dark-soft::before {
  background: rgba(0, 0, 0, 0.30);
}

/* ----------------------------------------------------------
   4. Dark Strong
   ---------------------------------------------------------- */
.hero-overlay.dark-strong::before {
  background: rgba(0, 0, 0, 0.50);
}

/* ----------------------------------------------------------
   5. Dark Diagonal
   ---------------------------------------------------------- */
.hero-overlay.dark-diagonal::before {
  background: linear-gradient(
    to bottom right,
    rgba(0, 0, 0, 0.45) 0%,
    rgba(0, 0, 0, 0.25) 40%,
    rgba(0, 0, 0, 0.00) 100%
  );
}

/* =======================================
   VM Hero – Refined height (prevent stretch)
   ======================================= */

.vm-hero-column {
  /* Reduce overall height so background isn't over-upscaled */
  min-height: clamp(520px, 72vh, 900px);
}

/* =======================================
   VM Hero – Shorter Height Variant
   ======================================= */

.vm-hero-short {
  /* shorter overall hero so BG image doesn’t have to stretch as much */
  min-height: clamp(520px, 70vh, 850px);
}

/* reduce padding only when vm-hero + vm-section-xl + vm-hero-short are together */
.vm-hero.vm-section-xl.vm-hero-short {
  padding-top: clamp(3rem, 6vh, 4.5rem) !important;
  padding-bottom: clamp(3rem, 6vh, 4.5rem) !important;
}

/* =======================================
   VM Hero – Solid page-color background
   (blocks show-through on ultra-wide screens)
   ======================================= */

.vm-hero-bg-page {
  /* Match site background */
  background-color: #f7f5f2 !important;
}
