/* ═══════════════════════════════════════════════════════════════════
   U Brothers — sitewide TEXT PAGE standard (2026-09)
   One rule set for every content page (/about-us, /partners, /faq,
   /privacy and every CMS page). Loaded AFTER the theme in
   layouts/main.blade.php so it wins the cascade, and it deliberately
   neutralizes pasted-from-Word inline styles (justify, Helvetica,
   per-paragraph font sizes) that made every page look different.
   Standard: body 17px/1.75 left-aligned, full-width text column,
   pine-green headings on a fixed scale. See the Text Formatting Guide.
   ═══════════════════════════════════════════════════════════════════ */

/* ── the text column: full width, one size ── */
.text-page,
.text.text-page,
.ubp {
  width: 100%;
  max-width: none;
  font-size: 17px;
  line-height: 1.75;
  color: #24313a;
  text-align: left;
}

/* neutralize legacy inline styles (Word/Pages paste junk) */
.text-page [style],
.ubp [style] {
  text-align: left !important;
  font-family: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
  min-height: 0 !important;
}
.text-page p[style],
.text-page span[style],
.text-page li[style] {
  font-size: inherit !important;
}
/* keep functional hiders working (honeypots etc.) */
.text-page [style*="-5000px"],
.ubp [style*="-5000px"] { position: absolute !important; left: -5000px !important; }

/* ── paragraphs & rhythm ── */
.text-page p, .ubp p { margin: 0 0 14px; }
.text-page p:last-child { margin-bottom: 0; }

/* ── heading scale (pine green, consistent everywhere) ── */
.text-page h2, .ubp h2 {
  font-size: 28px !important;
  line-height: 1.25;
  color: #0c3b2e;
  font-weight: 800;
  margin: 34px 0 12px;
  text-align: left !important;
}
.text-page h3, .ubp h3 {
  font-size: 21px !important;
  line-height: 1.3;
  color: #0c3b2e;
  font-weight: 700;
  margin: 24px 0 8px;
  text-align: left !important;
}
.text-page h2:first-child { margin-top: 8px; }
/* legacy content often uses h3/h4 as fake body text — normalize empties away */
.text-page h2:empty, .text-page h3:empty, .text-page p:empty { display: none; }

/* ── links ── */
.text-page a:not([class]), .ubp a:not([class]) {
  color: #0c7a4d;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.text-page a:not([class]):hover { color: #f26a1b; }

/* ── lists ── */
.text-page ul, .text-page ol { margin: 0 0 16px; padding-left: 24px; }
.text-page li { margin: 6px 0; }

/* ── images inside content ── */
.text-page img { max-width: 100%; height: auto; border-radius: 10px; }

/* ── team cards on /about-us (replaces the inline 40px/32px styles) ── */
.team-container { display: flex; gap: 28px; align-items: flex-start; margin: 0 0 34px; flex-wrap: wrap; }
.team-left-column { flex: 0 0 240px; max-width: 240px; }
.team-left-column img { width: 100%; border-radius: 12px; }
.team-right-column { flex: 1; min-width: 260px; }
.team-right-column .h3 { font-size: 26px !important; font-weight: 800; color: #0c3b2e; margin: 0 0 2px; }
.team-right-column .h4 { font-size: 17px !important; font-weight: 700; color: #f26a1b; margin: 0 0 8px; text-transform: uppercase; letter-spacing: .03em; }
.team-right-column [style] { padding: 0 !important; }
.team-right-column { font-size: 16px; line-height: 1.65; }

/* ── stat band (optional component, used on /about-us) ── */
.ub-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin: 26px 0; }
.ub-stat { background: #f5f8f6; border: 1px solid #e0e8e3; border-radius: 10px; padding: 16px 18px; text-align: center; }
.ub-stat b { display: block; font-size: 30px; color: #0c3b2e; font-weight: 900; line-height: 1.1; }
.ub-stat span { font-size: 13.5px; color: #5d6b76; }

/* ── callout band (optional component) ── */
.ub-callout { background: #0c3b2e; color: #fff; border-radius: 12px; padding: 20px 24px; margin: 26px 0; font-size: 17px; }
.ub-callout a { color: #ffd9bd; }

/* ── mobile ── */
@media (max-width: 640px) {
  .text-page, .ubp { font-size: 16px; }
  .text-page h2, .ubp h2 { font-size: 24px !important; }
  .text-page h3, .ubp h3 { font-size: 19px !important; }
  .team-left-column { flex-basis: 100%; max-width: 320px; }
}

/* ── team section v2 (card grid, /about-us) ── */
.ub-team { margin: 8px 0 56px; }
.ub-team__head { margin-bottom: 22px; }
.ub-team__title { font-size: 28px !important; font-weight: 800; color: #0c3b2e; margin: 0 0 6px !important; }
.ub-team__sub { font-size: 17px; line-height: 1.6; color: #5d6b76; margin: 0; }
.ub-team__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 18px; }
.ub-person { background: #fff; border: 1px solid #e0e8e3; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.ub-person:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(12, 59, 46, .12); }
.ub-person__photo { aspect-ratio: 4 / 5; background: #eef3f0; overflow: hidden; }
.ub-person__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; border-radius: 0 !important; }
.ub-person__body { padding: 14px 16px 18px; border-top: 3px solid #f26a1b; flex: 1; }
.ub-person__name { font-size: 19px !important; font-weight: 800; color: #0c3b2e; margin: 0 0 2px !important; line-height: 1.25; }
.ub-person__role { font-size: 12.5px; font-weight: 700; color: #f26a1b; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 10px; }
.ub-person__spec { display: inline-block; background: #eaf1ed; color: #0c3b2e; font-size: 13.5px; font-weight: 600; line-height: 1.4; padding: 5px 10px; border-radius: 6px; }
@media (max-width: 640px) {
  .ub-team__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .ub-person__body { padding: 11px 12px 14px; }
  .ub-person__name { font-size: 16.5px !important; }
  .ub-person__spec { font-size: 12.5px; }
}
@media (prefers-reduced-motion: reduce) { .ub-person, .ub-person:hover { transition: none; transform: none; } }
/* links inside the dark callout band stay light (beats the generic green link rule) */
.text-page .ub-callout a, .ub-callout a:not([class]) { color: #ffd9bd !important; }
.text-page .ub-callout a:hover { color: #fff !important; }

/* ── homepage "Where We Work" text panel (2026-09-22) ──
   The DB copy was pasted from Word (Times New Roman, justified, #535353 on a
   light taupe ground ~3.2:1). Copy is now clean HTML; these rules set the type
   and deepen the ground so white text passes contrast (~6:1). */
.index-page__where-we-work.where-we-work { background-color: #6b625b; }
.where-we-work__main { padding-right: 32px; }
.where-we-work__sub-title { display: inline-block; background: rgba(255,255,255,.14); border-radius: 999px; padding: 6px 16px !important; font-size: 20px !important; letter-spacing: .02em; margin-top: 6px !important; }
.where-we-work__text, .where-we-work__text p, .where-we-work__text li, .where-we-work__text span {
  font-family: Roboto, Arial, sans-serif !important; color: #fff !important; text-align: left !important;
  font-size: 18px !important; line-height: 1.7 !important; }
.where-we-work__text { margin-top: 22px; max-width: 640px; }
.where-we-work__text p { margin: 0 0 16px !important; }
.where-we-work__text .ub-www-areas { list-style: none; padding: 0; margin: 0 0 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.where-we-work__text .ub-www-areas li { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); border-radius: 10px; padding: 12px 14px; margin: 0; }
.where-we-work__text .ub-www-areas li::before { display: none !important; }
.where-we-work__text .ub-www-areas b { display: block; font: 800 17px/1.2 'Roboto Condensed', Roboto, Arial, sans-serif; color: #fff; letter-spacing: .02em; }
.where-we-work__text .ub-www-areas span { display: block; font-size: 14.5px !important; line-height: 1.4 !important; color: #efe9e4 !important; margin-top: 3px; }
@media (max-width: 1200px) { .where-we-work__text .ub-www-areas { grid-template-columns: 1fr; } }
/* mobile card (white) — same list, dark text */
.service-area-card .ub-www-areas { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 8px; }
.service-area-card .ub-www-areas li { background: #f3f6f4; border-radius: 9px; padding: 10px 12px; margin: 0; }
.service-area-card .ub-www-areas li::before { display: none !important; }
.service-area-card .ub-www-areas b { display: block; color: #0c3b2e; font-weight: 800; }
.service-area-card .ub-www-areas span { display: block; color: #5a6a62; font-size: 14px; }
.where-we-work__sub-title { width: auto !important; max-width: max-content; }
