/*
Theme Name: Beaver Builder Child Theme
Theme URI: http://www.wpbeaverbuilder.com
Version: 1.0
Description: An example child theme that can be used as a starting point for custom development.
Author: The Beaver Builder Team
Author URI: http://www.fastlinemedia.com
template: bb-theme
*/


/* ============================================================
   One-On-One Fitness — Folsom Personal Training design layer (v2)
   Brand: red #d2232a · charcoal #38383a · section gray #e0e0e0

   Typography (font family/weight/size/line-height/format/colors)
   is intentionally NOT set here — it is driven by the Customizer:
   Appearance → Customize → General → Text / Headings.
   This file only styles layout and custom components.
   ============================================================ */

:root {
  --oo-red: #d2232a;
  --oo-red-dark: #a51b21;
  --oo-dark: #38383a;
  --oo-gray: #e0e0e0;
  --oo-text: #222222;
  --oo-display: "Bebas Neue", "Arial Narrow", sans-serif;
}

html { scroll-behavior: smooth; }

.sr-only {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* ---------- Layout widths ---------- */

.fl-row-content.fl-row-fixed-width { max-width: 1140px; }
.oo-narrow .fl-row-content.fl-row-fixed-width { max-width: 1020px; }

/* ---------- Header ---------- */

.fl-page-header { background: #fff; }
.fl-logo-img { max-height: 54px; width: auto; }

.fl-page-nav .navbar-nav > li > a:hover,
.fl-page-nav .navbar-nav > li.current-menu-item > a,
.fl-page-nav .navbar-nav > li.current_page_item > a {
  text-decoration: underline;
  text-underline-offset: 6px;
  background: transparent;
}

.fl-page-nav .navbar-nav > li.nav-cta > a {
  background: var(--oo-red);
  color: #fff;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 1em 2.2em;
}
.fl-page-nav .navbar-nav > li.nav-cta > a:hover {
  background: var(--oo-red-dark);
  color: #fff;
  text-decoration: none;
}

/* ---------- Hero (full-bleed image rows) ---------- */

.oo-hero .fl-row-content-wrap { padding: 0; }
.oo-hero .fl-module-content { margin: 0; }

.oo-hero-wrap { position: relative; }
.oo-hero-wrap img {
  width: 100%; height: auto; display: block;
  animation: oo-hero-fade 1s ease both;
}
.oo-hero-cta {
  position: absolute;
  left: 41.5%; top: 60%;
  width: 18.5%; height: 9.5%;
}
@keyframes oo-hero-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .oo-hero-wrap img { animation: none; }
}

/* ---------- Sections ---------- */

.oo-section > .fl-row-content-wrap { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.oo-tight > .fl-row-content-wrap { padding-top: 1.5rem; }
.oo-lead-quote-row > .fl-row-content-wrap { padding-top: 4rem; padding-bottom: 0.5rem; }
.oo-contact-intro > .fl-row-content-wrap { padding-top: 4rem; padding-bottom: 0; }

.oo-rule {
  border: none;
  border-top: 1px solid #222;
  width: 55%;
  margin: 0.4rem auto 1.5rem;
}

/* ---------- Quotes ---------- */

.oo-lead-quote blockquote,
.oo-testimonial blockquote,
.oo-red blockquote {
  border: none;
  padding: 0;
  margin: 0 0 1.2rem;
  font-style: italic;
}
.oo-lead-quote blockquote { max-width: 980px; }
.oo-lead-quote cite,
.oo-testimonial cite { font-style: normal; }
.oo-lead-quote cite { font-weight: 600; }
.oo-testimonial cite strong { font-weight: 600; }

/* ---------- Red section ---------- */

.oo-red, .oo-red p, .oo-red blockquote { color: #fff; }
.oo-red h2, .oo-red .fl-heading { color: #fff; }
.oo-red blockquote { margin: 1.5rem 0; }
.oo-attribution { font-weight: 600; }

/* ---------- Offerings ---------- */

.oo-offering {
  display: block;
  text-align: center;
  text-decoration: none;
  color: var(--oo-text);
}
.oo-offering:hover { color: var(--oo-red); }
.oo-offering svg {
  display: block;
  width: 72px; height: 72px;
  margin: 0 auto 1.2rem;
  stroke: #1c1c1c;
  fill: none;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ---------- About ---------- */

.oo-subhead { font-weight: 600; margin-bottom: 1rem; }
.oo-caption { font-size: 0.88em; line-height: 1.8; }
.oo-cta-underline {
  display: block;
  width: 160px;
  border: none;
  border-top: 4px solid var(--oo-red);
  margin: 0;
}

/* ---------- Buttons ---------- */

.oo-btn a.fl-button,
.oo-btn a.fl-button:visited {
  border: none;
  border-radius: 0;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 1em 2.2em;
}

/* ---------- Contact ---------- */

.oo-contact-lines p { margin: 0 0 0.5em; }
.oo-contact-lines a { color: var(--oo-red); }
.oo-intro-rule { border: none; border-top: 1px solid #222; margin: 3rem 0 0; }

.fl-contact-form input[type="text"],
.fl-contact-form input[type="email"],
.fl-contact-form textarea {
  padding: 0.65em 0.8em;
  border: 1px solid #333;
  background: #fbfbfb;
  border-radius: 0;
}
.fl-contact-form textarea { min-height: 140px; }

.oo-map { width: 100%; height: 440px; border: 0; display: block; }

/* ---------- Videos ---------- */

.oo-video iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: 0;
  display: block;
}
/* One-off: the videos page title is intentionally smaller than global H1 */
.oo-videos-title .fl-heading { font-size: 2rem; }

/* ---------- Shelly photo ---------- */

.oo-shelly .fl-photo { text-align: right; }
.oo-shelly .fl-photo-img { max-width: 360px; }

/* ---------- Themer header part ---------- */

.oo-th-header .fl-row-content-wrap { padding-top: 1.1rem; padding-bottom: 1.1rem; }
.oo-th-header .fl-col-group { display: flex; align-items: center; }
.oo-th-header .fl-col { float: none; }
.oo-th-logo .fl-module-content,
.oo-th-menu .fl-module-content { margin: 0; }
.oo-th-logo .fl-photo-img { max-height: 54px; width: auto; }

.oo-th-menu ul.menu > li > a { text-decoration: none; }
.oo-th-menu ul.menu > li > a:hover,
.oo-th-menu ul.menu > li.current-menu-item > a,
.oo-th-menu ul.menu > li.current_page_item > a {
  text-decoration: underline;
  text-underline-offset: 6px;
  background: transparent;
}
.oo-th-menu ul.menu > li.nav-cta > a {
  background: var(--oo-red);
  color: #fff;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 1em 2.2em;
  margin-left: 0.7rem;
}
.oo-th-menu ul.menu > li.nav-cta > a:hover {
  background: var(--oo-red-dark);
  color: #fff;
  text-decoration: none;
}

/* ---------- Themer footer part ---------- */

.oo-th-footer .fl-row-content-wrap { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.oo-th-footer, .oo-th-footer p { color: #fff; }
.oo-th-footer a { color: #fff; }

/* ---------- Footer ---------- */

.fl-page-footer,
.fl-page-footer-wrap { background: var(--oo-dark); color: #fff; }
.fl-page-footer a { color: #fff; }
.oo-footer-brand {
  font-family: var(--oo-display);
  font-size: 1.7rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 2rem;
  color: #fff;
}
.oo-footer-address { font-size: 0.95em; text-transform: uppercase; }
