/**
Theme Name: Bimeo Pro
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bimeo-pro
Template: astra
*/
/* ============================================================
   Bimeo — subpage design system (The Family Center)
   ============================================================ */

/* Hide Astra's page-title banner on Elementor Full-Width pages.
   Our subpage designs supply their own hero, so the theme title
   banner is redundant. Scoped to the Full-Width template only —
   the homepage (default template) is unaffected. */
.page-template-elementor_header_footer .entry-header,
.page-template-elementor_header_footer .ast-single-entry-banner,
.elementor-template-full-width .entry-header,
.elementor-template-full-width .ast-single-entry-banner {
  display: none !important;
}

/* Let Elementor sections run edge-to-edge on Full-Width pages.
   Astra forces a plain container with horizontal padding; on mobile that
   gutter reveals the body background as side-strips. Zero it so our
   section background bands are full-bleed (our containers carry their own
   content padding). Scoped to the Full-Width template only. */
.elementor-template-full-width .ast-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 100% !important;
}

/* ============================================================
   Subpage design-fidelity fixes — match the Figma comps
   (html2elementor flattened these; classes added via _css_classes)
   ============================================================ */

/* All content images: rounded corners */
.elementor-template-full-width .elementor-widget-image img { border-radius: 20px; display: block; }

/* Hero image — fixed-height cover card with soft shadow */
.fc-hero-col { position: relative; }
.fc-hero-img img {
  width: 100%; height: 430px !important; object-fit: cover !important;
  border-radius: 24px !important; box-shadow: 0 30px 60px -30px rgba(12,108,105,.45);
}

/* Alternating-row images — cover, rounded, shadow */
/* The wrapper must be forced to full column width: a portrait source otherwise
   shrinks the flex item to its intrinsic width at height:380px. */
.fc-row-img { width: 100% !important; }
.fc-row-img img {
  width: 100%; height: 380px !important; object-fit: cover !important;
  border-radius: 24px !important; box-shadow: 0 24px 50px -28px rgba(0,0,0,.4);
}
/* Portrait headshot in a row slot — keep its 4:5 ratio instead of forcing the
   380px landscape band, which crops a head-and-shoulders shot far too tight. */
.fc-img-portrait img {
  height: auto !important; aspect-ratio: 4 / 5; object-fit: cover !important;
  object-position: center top;
}

/* 40+ badge — white card overlapping the hero image bottom-left */
.fc-badge {
  position: absolute !important; left: -16px; bottom: 34px; z-index: 3; width: auto !important;
  background: #fff; border-radius: 18px; padding: 16px 22px;
  box-shadow: 0 18px 40px -16px rgba(0,0,0,.25);
}
.fc-badge .elementor-widget-container { display: flex; align-items: center; gap: 12px; }
.fc-badge .elementor-heading-title { margin: 0; font-size: 38px; font-weight: 700; color: #0C6C69; line-height: 1; }
.fc-badge .elementor-widget-container::after {
  content: "years caring for Maryland families";
  font-size: 13px; line-height: 1.3; color: #545454; max-width: 120px; font-weight: 400;
}

/* Checklist — teal circle behind the white checkmark, label beside it.
   Target the card container directly via :has() (the card is the e-con that
   holds the checkmark widget) and force a row layout. */
.e-con:has(> .fc-check) {
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
}
.fc-check { flex: 0 0 auto; width: auto !important; align-self: center; }
.fc-check .elementor-heading-title {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; min-width: 26px;
  border-radius: 50%; background: #0C6C69; line-height: 1; font-size: 13px;
}

/* CTA band — restore vertical padding */
.fc-cta { padding-top: 74px !important; padding-bottom: 74px !important; }

/* ===== Reusable component styles for HTML-widget sections ===== */
/* Hero media (image + overhanging badge) */
.fc-hero-media{position:relative;display:block;width:100%}
.fc-hero-media>img{width:100%;height:430px;object-fit:cover;border-radius:24px;display:block;box-shadow:0 22px 45px -28px rgba(0,0,0,.32)}
.fc-hero-media .fc-badge2{position:absolute;left:-18px;bottom:28px;display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;padding:15px 22px;box-shadow:0 16px 34px -16px rgba(0,0,0,.2)}
.fc-hero-media .fc-badge2 .num{font:700 38px/1 Roboto,sans-serif;color:#0C6C69}
.fc-hero-media .fc-badge2 small{font:400 13px/1.3 Roboto,sans-serif;color:#545454;max-width:120px}
@media(max-width:767px){.fc-hero-media>img{height:340px}.fc-hero-media .fc-badge2{left:8px;bottom:14px}}

/* Service-card grid */
.fc-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:0 auto}
.fc-svc-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 16px 40px -28px rgba(0,0,0,.4);display:flex;flex-direction:column}
.fc-svc-card .pic{height:230px;overflow:hidden}
.fc-svc-card .pic img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.fc-svc-card .body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.fc-svc-card h3{font:700 21px/1.3 Roboto,sans-serif;color:#333;margin:0 0 10px}
.fc-svc-card p{font:400 15px/1.6 Roboto,sans-serif;color:#545454;margin:0 0 18px}
.fc-svc-card .more{margin-top:auto;color:#0C6C69;font:700 15px Roboto,sans-serif;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.fc-svc-card .more .arr{width:26px;height:26px;border-radius:50%;background:#F6EFEA;display:inline-flex;align-items:center;justify-content:center}
.fc-tele-note{max-width:980px;margin:30px auto 0;background:#0C6C69;color:#fff;border-radius:16px;padding:18px 26px;text-align:center;font:600 16px Roboto,sans-serif}
@media(max-width:880px){.fc-svc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.fc-svc-grid{grid-template-columns:1fr}}

/* Team-card grid */
.fc-team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1100px;margin:0 auto}
.fc-team-card{background:#fff;border:1px solid #e7e2da;border-radius:14px;padding:26px;text-align:center}
.fc-team-card .ph{width:128px;height:128px;border-radius:50%;overflow:hidden;margin:0 auto 18px;border:3px solid #F6EFEA}
.fc-team-card .ph img{width:100%;height:100%;object-fit:cover;display:block}
.fc-team-card .nm{font:700 18px Roboto,sans-serif;color:#333}
.fc-team-card .cr{font:700 italic 14px Roboto,sans-serif;color:#0C6C69;margin:3px 0 4px}
.fc-team-card .rl{font:400 13px Roboto,sans-serif;color:#545454;text-transform:uppercase;letter-spacing:.5px;margin-bottom:14px}
.fc-team-card .bio{font:400 14px/1.6 Roboto,sans-serif;color:#545454;text-align:left}
/* Linked team card (bio page). Anchors must not inherit link styling. */
a.fc-team-card{display:block;text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
a.fc-team-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -20px rgba(0,0,0,.35);border-color:#0C6C69}
.fc-team-card .more{display:block;margin-top:14px;font:700 14px Roboto,sans-serif;color:#0C6C69}
/* Centre a lone card left over on the final row so 7 members don't read as a mistake. */
.fc-team-card:last-child:nth-child(3n+1){grid-column:2}
@media(max-width:880px){.fc-team-grid{grid-template-columns:1fr 1fr}
  .fc-team-card:last-child:nth-child(3n+1){grid-column:auto}}
@media(max-width:600px){.fc-team-grid{grid-template-columns:1fr}}

/* Contact form (referenced template 2177) — rounded inputs, left text; subpages only */
.elementor-template-full-width .elementor-field-group .elementor-field,
.elementor-template-full-width .elementor-field-group input,
.elementor-template-full-width .elementor-field-group textarea,
.elementor-template-full-width .elementor-field-group select{
  border:1px solid #d8d2c9 !important; border-radius:10px !important; background:#fff !important;
  padding:13px 14px !important; color:#333 !important; box-shadow:none !important; text-align:left !important;
}
.elementor-template-full-width .elementor-field-group textarea{min-height:120px}
.elementor-template-full-width .elementor-field-group > label{text-align:left;font-weight:600;color:#333}
.elementor-template-full-width .elementor-button[type=submit]{border-radius:12px !important}

/* ============================================================
   Blog index (posts page) — home.php
   Reuses the .fc-svc-* card system; adds a subpage-style hero,
   post date, card title links, and brand-matched pagination.
   Scoped to .fc-blog-index so nothing leaks to other archives.
   ============================================================ */

/* Full-bleed: kill Astra's blog container max-width + side padding and the
   theme title banner / sidebar on the posts archive only.
   Astra's ast-page-builder-template makes #content > .ast-container a flex
   row; force block so our hero / listing / CTA stack vertically full-width. */
.blog #content > .ast-container,
.blog .ast-container,
.fc-blog-index,
.fc-blog-listing,
.fc-blog-listing-inner,
.fc-blog-hero{
  display:block !important;
  max-width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
  width:100%;
}
.fc-blog-hero{ padding:0 40px !important; }
.fc-blog-listing{ padding:66px 40px 104px !important; }
.blog .ast-separate-container .ast-article-post,
.blog #secondary,
.blog .ast-single-entry-banner,
.blog .entry-header.ast-no-title{ display:none !important; }
.fc-blog-index .site-content,
.fc-blog-index{ background:#fff; }

/* ---- Hero band ---- */
/* White (not the nav's warm-white #FFFAF6) so the hero reads as distinct
   from the sticky nav band directly above it. */
.fc-blog-hero{ background:#fff; padding:0 40px; }
.fc-blog-hero-inner{
  max-width:1200px; margin:0 auto; padding:64px 0 60px;
  display:flex; flex-direction:column; align-items:flex-start;
}
.fc-breadcrumb{ font:500 14px/1.5 Roboto,sans-serif; margin:0 0 16px; }
.fc-breadcrumb a{ color:#545454; text-decoration:none; }
.fc-breadcrumb a:hover{ color:#0C6C69; }
.fc-breadcrumb .sep{ color:#9a9a9a; margin:0 8px; }
.fc-breadcrumb .cur{ color:#0C6C69; font-weight:700; }
.fc-eyebrow{
  font:700 14px/1.5 Roboto,sans-serif; letter-spacing:2px;
  text-transform:uppercase; color:#0C6C69; margin:0 0 8px;
}
.fc-blog-h1{
  font:700 62px/1.1 Roboto,sans-serif; color:#0C6C69; margin:0 0 16px;
  letter-spacing:-.5px;
}
.fc-blog-intro{
  font:400 18px/1.7 Roboto,sans-serif; color:#545454; margin:0; max-width:680px;
}

/* ---- Listing ---- */
.fc-blog-listing{ background:#fff; padding:66px 40px 104px; }
.fc-blog-listing-inner{ max-width:1148px; margin:0 auto; }
.fc-blog-grid{ max-width:1148px; }

/* Card overrides specific to the blog (date + title-as-link) */
.fc-blog-card{ margin:0 !important; }
.fc-blog-card .pic{ display:block; height:200px; }
.fc-blog-card .pic .fc-blog-noimg{
  display:block; width:100%; height:100%;
  background:linear-gradient(135deg,#E5E9E0,#F6EFEA);
}
.fc-blog-card .pic img{
  width:100%; height:100%; object-fit:cover; object-position:top;
  display:block; border-radius:0 !important; transition:transform .4s ease;
}
.fc-blog-card:hover .pic img{ transform:scale(1.04); }
.fc-blog-date{
  font:600 12px/1 Roboto,sans-serif; letter-spacing:1px; text-transform:uppercase;
  color:#0C6C69; margin:0 0 10px !important;
}
.fc-blog-card h3{ margin:0 0 10px !important; }
.fc-blog-card h3 a{ color:#333; text-decoration:none; }
.fc-blog-card h3 a:hover{ color:#0C6C69; }
.fc-blog-card .more:hover .arr{ background:#0C6C69; color:#fff; }
.fc-blog-card .more .arr{ transition:background .2s ease,color .2s ease; }

.fc-blog-empty{
  text-align:center; font:400 17px/1.6 Roboto,sans-serif; color:#545454; padding:60px 0;
}

/* ---- Pagination ---- */
/* the_posts_pagination() with a custom 'class' arg REPLACES the default
   `pagination` class (nav becomes "navigation fc-blog-pagination"), so a
   `.navigation.pagination` selector never matches. Target `.navigation`
   directly so the top gap from the card grid actually applies. */
.fc-blog-listing .navigation{ margin-top:60px !important; }
.fc-blog-listing .nav-links{
  display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:10px;
}
.fc-blog-listing .nav-links .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:46px; height:46px; padding:0 14px;
  border:1px solid #e7e2da; border-radius:12px;
  font:600 15px Roboto,sans-serif; color:#333; text-decoration:none;
  background:#fff; transition:all .2s ease;
}
.fc-blog-listing .nav-links a.page-numbers:hover{
  border-color:#0C6C69; color:#0C6C69; background:#FFFAF6;
}
.fc-blog-listing .nav-links .page-numbers.current{
  background:#0C6C69; border-color:#0C6C69; color:#fff;
}
.fc-blog-listing .nav-links .page-numbers.dots{ border:none; min-width:auto; }
.fc-blog-listing .nav-links .prev,
.fc-blog-listing .nav-links .next{
  font-family:"Open Sans",sans-serif; font-weight:600;
}

/* ---- Responsive ---- */
@media(max-width:880px){
  .fc-blog-h1{ font-size:46px; }
  .fc-blog-hero{ padding:0 24px; }
  .fc-blog-listing{ padding:48px 24px 64px; }
}
@media(max-width:600px){
  .fc-blog-hero{ padding:0 18px; }
  .fc-blog-hero-inner{ padding:44px 0 40px; }
  .fc-blog-h1{ font-size:36px; }
  .fc-blog-intro{ font-size:16px; }
  .fc-blog-listing{ padding:40px 18px 56px; }
  .fc-blog-card .pic{ height:190px; }
}

/* Contact info cards */
.fc-info-stack{display:flex;flex-direction:column;gap:18px}
.fc-info-card{background:#F6EFEA;border-radius:20px;padding:24px 28px}
.fc-info-card h4{color:#0C6C69;font:700 14px/1 Roboto,sans-serif;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 10px}
.fc-info-card p{font:400 16px/1.7 Roboto,sans-serif;color:#333;margin:0}
.fc-info-card a{color:#333;text-decoration:none}
.fc-info-card a:hover{color:#0C6C69;text-decoration:underline}

/* ============================================================
   SINGLE POST — design-matched article template (single.php)
   Full-width, no sidebar, clean centered reading column.
   ============================================================ */
/* Kill Astra's boxed container, sidebar, and title banner on single posts */
.single-post #content > .ast-container,
.single-post .site-content .ast-container,
.single-post #primary{
  max-width:100% !important; width:100% !important;
  margin:0 !important; padding:0 !important;
}
.single-post #secondary,
.single-post .ast-single-entry-banner,
.single-post .entry-header,
.single-post .ast-author-box,
.single-post .post-navigation,
.single-post .comment-respond,
.single-post .comments-area{ display:none !important; }
.single-post .site-content > .ast-container{ display:block !important; }
.fc-post{ background:#fff; }

/* ---- Post hero (slim, white, breadcrumb + date eyebrow + title) ---- */
.fc-post-hero{ background:#fff; padding:0 40px; border-bottom:1px solid #f0ece4; }
.fc-post-hero-inner{ max-width:820px; margin:0 auto; padding:54px 0 42px; }
.fc-post-hero .fc-breadcrumb{ margin:0 0 18px; }
.fc-post-hero .fc-breadcrumb .cur{ color:#0C6C69; font-weight:700; }
.fc-post-eyebrow{
  font:700 13px/1 Roboto,sans-serif; letter-spacing:1.5px; text-transform:uppercase;
  color:#0C6C69; margin:0 0 14px;
}
.fc-post-h1{
  font:700 46px/1.18 Roboto,sans-serif; color:#0C6C69; letter-spacing:-.5px; margin:0;
}

/* ---- Post body (centered reading column) ---- */
.fc-post-body{ background:#fff; padding:50px 40px 80px; }
.fc-post-col{ max-width:760px; margin:0 auto; }
.fc-post-content{ font:400 18px/1.8 Roboto,sans-serif; color:#454545; }
.fc-post-content > *:first-child{ margin-top:0; }
.fc-post-content p{ margin:0 0 24px; }
.fc-post-content h2{ font:700 30px/1.3 Roboto,sans-serif; color:#333; margin:44px 0 16px; }
.fc-post-content h3{ font:700 23px/1.35 Roboto,sans-serif; color:#333; margin:34px 0 14px; }
.fc-post-content a{ color:#0C6C69; text-decoration:underline; text-underline-offset:2px; }
.fc-post-content a:hover{ color:#09524f; }
.fc-post-content strong{ color:#333; font-weight:700; }
.fc-post-content ul,.fc-post-content ol{ margin:0 0 24px; padding-left:26px; }
.fc-post-content li{ margin:0 0 10px; }
.fc-post-content figure{ margin:32px 0; }
.fc-post-content img{
  width:100%; height:auto; display:block; border-radius:18px;
  box-shadow:0 24px 50px -30px rgba(0,0,0,.35);
}
.fc-post-content blockquote{
  border-left:4px solid #0C6C69; background:#FFFAF6; margin:30px 0;
  padding:18px 26px; border-radius:0 12px 12px 0; font-style:italic; color:#333;
}
.fc-post-back{ margin-top:50px; padding-top:30px; border-top:1px solid #efece6; }
.fc-post-back a{
  font:700 15px Roboto,sans-serif; color:#0C6C69; text-decoration:none;
  display:inline-flex; align-items:center; gap:8px; transition:gap .2s ease;
}
.fc-post-back a:hover{ gap:13px; }

@media(max-width:880px){
  .fc-post-hero{ padding:0 24px; }
  .fc-post-h1{ font-size:36px; }
  .fc-post-body{ padding:40px 24px 64px; }
  .fc-post-content{ font-size:17px; }
}
@media(max-width:600px){
  .fc-post-hero{ padding:0 18px; }
  .fc-post-hero-inner{ padding:42px 0 34px; }
  .fc-post-h1{ font-size:30px; }
  .fc-post-body{ padding:34px 18px 54px; }
  .fc-post-content h2{ font-size:26px; }
}

/* ============================================================
   BLOG — category label pill (on cards) + category filter bar
   ============================================================ */

/* ---- Category pill overlaid on the card image (top-left) ---- */
.fc-blog-card .pic{ position:relative; }
.fc-card-pill{
  position:absolute; top:14px; left:14px; z-index:2;
  display:inline-block; padding:6px 13px; border-radius:999px;
  background:rgba(255,255,255,.94); color:#0C6C69;
  font:700 11px/1 Roboto,sans-serif; letter-spacing:.6px; text-transform:uppercase;
  box-shadow:0 6px 18px -8px rgba(0,0,0,.4); backdrop-filter:saturate(1.2) blur(2px);
}

/* ---- Filter bar (pills) above the grid ---- */
.fc-blog-filter{
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center;
  margin:0 0 40px;
}
.fc-filter-pill{
  display:inline-flex; align-items:center; padding:9px 18px; border-radius:999px;
  border:1px solid #e0dace; background:#fff; color:#545454;
  font:600 14px/1 Roboto,sans-serif; text-decoration:none;
  transition:all .18s ease;
}
.fc-filter-pill:hover{ border-color:#0C6C69; color:#0C6C69; background:#FFFAF6; }
.fc-filter-pill.is-active{
  background:#0C6C69; border-color:#0C6C69; color:#fff;
}
@media(max-width:600px){
  .fc-blog-filter{ gap:8px; margin-bottom:30px; }
  .fc-filter-pill{ padding:8px 14px; font-size:13px; }
  .fc-card-pill{ top:12px; left:12px; padding:5px 11px; font-size:10px; }
}

/* ============================================================
   HEADER — Services dropdown (submenu) legibility + polish
   The Elementor nav submenu link color was configured to a pale
   sage (~#abb99b) that's nearly invisible on the white panel.
   Override to brand colors and give the panel a clean card look.
   ============================================================ */
.elementor-location-header .elementor-nav-menu--dropdown,
.elementor-location-header .sub-menu{
  border-radius:12px !important;
  box-shadow:0 18px 44px -20px rgba(0,0,0,.28) !important;
  padding:8px !important; min-width:248px;
}
.elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item,
.elementor-location-header .sub-menu a{
  color:#333 !important; font-weight:600; border-radius:8px;
  padding:11px 18px !important;
}
.elementor-location-header .elementor-nav-menu--dropdown .elementor-sub-item:hover,
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item-active,
.elementor-location-header .sub-menu a:hover{
  color:#0C6C69 !important; background:#FFFAF6 !important;
}

/* Client Forms page (/forms/) — download cards are Elementor `icon-box` widgets tagged .fc-form-card.
   Card colours/borders/padding live in the widget's Advanced tab; this CSS only makes the whole card
   clickable (icon-box links icon + title natively) and adds the lift on hover.  Added 2026-09-23. */
.fc-form-card{position:relative;transition:transform .2s ease}
.fc-form-card:hover{transform:translateY(-1px)}
.fc-form-card .elementor-icon-box-title{margin:0}
.fc-form-card .elementor-icon-box-title a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.fc-form-card .elementor-icon-box-description{margin:0}
