/* Homepage / service-area custom HTML blocks (moved out of the block code).
   Loaded only on pages containing .rd-cards-desktop or .bm-pricing — see rd_blocks_assets() in functions.php */

/* "Why Local Families Choose" cards */
    .rd-container {
        max-width: 1200px;
        width: 100%;
        margin: 0 auto;
    }
    .rd-header {
        text-align: center;
        margin-bottom: 60px;
        animation: rdFadeInDown 0.8s ease;
    }
    .rd-header h1 {
        font-size: 3rem;
        color: #1a2332;
        margin-bottom: 15px;
        font-weight: 700;
    }
    .rd-header p {
        font-size: 1.1rem;
        color: #5a6c7d;
        max-width: 700px;
        margin: 0 auto;
        line-height: 1.6;
    }
    /* ── Desktop grid (≥ 969px) ── */
    .rd-cards-desktop {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 30px;
        margin-top: 40px;
        width: 100%;
    }
    /* ── Mobile Swiper wrapper — hidden by default ── */
    .rd-swiper-outer {
        display: none;
        margin-top: 40px;
        padding-bottom: 48px;
        position: relative;
    }
    .rd-swiper-outer .swiper {
        overflow: hidden;
        width: 100%;
    }
    .rd-swiper-outer .swiper-slide {
        height: auto;
        display: flex;
        align-items: stretch;
    }
    .rd-swiper-outer .swiper-pagination {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        text-align: center;
    }
    .rd-swiper-outer .swiper-pagination-bullet {
        background: #2d3e5f;
        opacity: 0.3;
        width: 10px;
        height: 10px;
        transition: opacity 0.3s, transform 0.3s;
    }
    .rd-swiper-outer .swiper-pagination-bullet-active {
        opacity: 1;
        transform: scale(1.3);
    }
    .rd-swipe-hint {
        text-align: center;
        font-size: 0.8rem;
        color: #8a9aab;
        margin-top: 12px;
        letter-spacing: 0.03em;
    }
    /* ── Shared card styles ── */
    .rd-card {
        background: white;
        border-radius: 20px;
        padding: 40px 30px;
        box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
        transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        cursor: pointer;
        position: relative;
        overflow: hidden;
        width: 100%;
    }
    .rd-card::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 4px;
        background: linear-gradient(90deg, #2d3e5f, #4a6fa5);
        transform: scaleX(0);
        transition: transform 0.4s ease;
    }
    /* Desktop staggered animations */
    .rd-cards-desktop .rd-card {
        animation: rdFadeInUp 0.8s ease both;
    }
    .rd-cards-desktop .rd-card:nth-child(1) { animation-delay: 0.1s; }
    .rd-cards-desktop .rd-card:nth-child(2) { animation-delay: 0.2s; }
    .rd-cards-desktop .rd-card:nth-child(3) { animation-delay: 0.3s; }
    /* Desktop hover */
    @media (min-width: 969px) {
        .rd-card:hover {
            transform: translateY(-10px) scale(1.02);
            box-shadow: 0 20px 60px rgba(45, 62, 95, 0.2);
        }
        .rd-card:hover::before { transform: scaleX(1); }
        .rd-card:hover .rd-icon {
            background: linear-gradient(135deg, #2d3e5f 0%, #4a6fa5 100%);
            transform: rotateY(360deg);
        }
        .rd-card:hover .rd-icon svg { stroke: white; }
        .rd-card:hover p { opacity: 1; max-height: 500px; margin-top: 10px; }
        .rd-card:hover .rd-tagline { opacity: 0; }
    }
    .rd-icon {
        width: 70px;
        height: 70px;
        margin: 0 auto 25px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, #e8ecf1 0%, #f5f7fa 100%);
        border-radius: 16px;
        transition: all 0.4s ease;
    }
    .rd-icon svg {
        width: 38px;
        height: 38px;
        stroke: #2d3e5f;
        transition: stroke 0.4s ease;
    }
    .rd-card h3 {
        font-size: 1.4rem;
        color: #1a2332;
        margin-bottom: 15px;
        text-align: center;
        font-weight: 600;
    }
    .rd-card p {
        color: #5a6c7d;
        line-height: 1.7;
        text-align: center;
        font-size: 0.95rem;
        opacity: 0;
        max-height: 0;
        overflow: hidden;
        transition: all 0.4s ease;
    }
    .rd-tagline {
        text-align: center;
        font-size: 0.9rem;
        color: #2d3e5f;
        font-weight: 600;
        margin-top: 15px;
        opacity: 1;
        transition: opacity 0.3s ease;
    }
    /* Active card state (mobile swiper) */
    .rd-card.is-active::before      { transform: scaleX(1); }
    .rd-card.is-active .rd-icon     { background: linear-gradient(135deg, #2d3e5f 0%, #4a6fa5 100%); }
    .rd-card.is-active .rd-icon svg { stroke: white; }
    .rd-card.is-active p            { opacity: 1; max-height: 500px; margin-top: 10px; }
    .rd-card.is-active .rd-tagline  { opacity: 0; }
    /* ── Switch to swiper below 968px ── */
    @media (max-width: 968px) {
        .rd-cards-desktop { display: none; }
        .rd-swiper-outer  { display: block; }
        .rd-header h1     { font-size: 2rem; }
        .rd-header p      { font-size: 1rem; }
        .rd-header        { margin-bottom: 40px; }
        .rd-card          { padding: 30px 22px; min-height: auto; }
        .rd-card h3       { font-size: 1.2rem; }
        .rd-card p        { font-size: 0.9rem; }
    }
    @media (max-width: 480px) {
        .rd-header h1 { font-size: 1.6rem; }
        .rd-header    { margin-bottom: 30px; }
    }
    @keyframes rdFadeInDown {
        from { opacity: 0; transform: translateY(-30px); }
        to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes rdFadeInUp {
        from { opacity: 0; transform: translateY(30px); }
        to   { opacity: 1; transform: translateY(0); }
    }

/* Price Range table */
  .bm-pricing{
    --denim-deep:#1B2E4A;
    --denim-mid:#26436B;
    --denim-line:#3A5D8C;
    --rust:#C1440E;
    --rust-dark:#96350B;
    --white:#FFFFFF;
    --ink-soft:#5B6472;
    --bg-off:#F4F6F9;
  }
  .bm-pricing *{box-sizing:border-box;}
  .bm-pricing{
    font-family:'Inter',sans-serif;
    background:var(--bg-off);
    color:var(--denim-deep);
    padding:72px 24px;
  }
  .bm-wrap{max-width:980px;margin:0 auto;}
  /* header */
  .bm-header{
    text-align:center;
    max-width:680px;
    margin:0 auto;
  }
  .bm-eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    font-weight:600;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--rust);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-bottom:14px;
  }
  .bm-eyebrow::before,
  .bm-eyebrow::after{
    content:"";
    width:22px;height:2px;
    background:var(--rust);
    display:inline-block;
  }
  .bm-head{
    font-family:'Oswald',sans-serif;
    font-weight:700;
    font-size:clamp(30px,4vw,44px);
    line-height:1.08;
    letter-spacing:-.01em;
    margin:0 0 14px;
    color:var(--denim-deep);
  }
  .bm-head span{color:var(--rust);}
  .bm-sub{
    font-size:16px;
    line-height:1.6;
    color:var(--ink-soft);
    max-width:620px;
    margin:0 auto 40px;
  }
  /* table shell */
  .bm-table-card{
    background:var(--denim-deep);
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 20px 50px -20px rgba(27,46,74,.45);
  }
  .bm-table-head{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr 1.1fr;
    gap:12px;
    padding:20px 28px;
    background:var(--denim-mid);
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#9FB2CE;
  }
  .bm-row{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr 1.1fr;
    gap:12px;
    align-items:center;
    padding:22px 28px;
    border-top:1px solid rgba(255,255,255,.08);
    color:var(--white);
    opacity:0;
    transform:translateY(10px);
    animation:bm-in .5s ease forwards;
  }
  .bm-row.custom{background:rgba(193,68,14,.1);}
  .bm-size{
    font-family:'Oswald',sans-serif;
    font-weight:600;
    font-size:17px;
    letter-spacing:.01em;
  }
  .bm-crew{display:flex;align-items:center;gap:6px;}
  .bm-box{
    width:11px;height:11px;
    border-radius:2px;
    background:var(--rust);
    flex-shrink:0;
  }
  .bm-box.ghost{
    background:transparent;
    border:1.5px dashed rgba(193,68,14,.55);
  }
  .bm-crew-label{
    font-family:'IBM Plex Mono',monospace;
    font-size:12.5px;
    color:#C7D2E3;
    margin-left:4px;
  }
  .bm-hours{
    font-family:'IBM Plex Mono',monospace;
    font-size:15px;
    color:#DCE4EF;
  }
  .bm-cost{
    font-family:'IBM Plex Mono',monospace;
    font-weight:600;
    font-size:18px;
    color:var(--white);
  }
  .bm-quote-btn{
    display:inline-block;
    font-family:'Inter',sans-serif;
    font-size:13.5px;
    font-weight:600;
    color:var(--white);
    background:var(--rust);
    padding:10px 18px;
    border-radius:7px;
    text-decoration:none;
    letter-spacing:.01em;
    transition:background .15s ease, transform .15s ease;
  }
  .bm-quote-btn:hover{
    background:var(--rust-dark);
    transform:translateY(-1px);
  }
  @keyframes bm-in{to{opacity:1;transform:translateY(0);}}
  .bm-row:nth-child(2){animation-delay:.04s;}
  .bm-row:nth-child(3){animation-delay:.08s;}
  .bm-row:nth-child(4){animation-delay:.12s;}
  .bm-row:nth-child(5){animation-delay:.16s;}
  .bm-row:nth-child(6){animation-delay:.2s;}
  /* footnote under table */
  .bm-foot{
    font-size:13px;
    line-height:1.6;
    color:var(--ink-soft);
    padding:18px 4px 0;
  }
  /* important pricing info banner */
  .bm-important{
    background:var(--white);
    border:1px solid #E2E7EF;
    border-left:4px solid var(--denim-mid);
    border-radius:10px;
    padding:20px 24px;
    margin-top:28px;
  }
  .bm-important h3{
    font-family:'Oswald',sans-serif;
    font-size:14px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--denim-mid);
    margin:0 0 10px;
  }
  .bm-important p{
    font-size:14px;
    line-height:1.6;
    color:var(--ink-soft);
    margin:0 0 8px;
  }
  .bm-important p:last-child{margin-bottom:0;}
  .bm-important strong{color:var(--denim-deep);}
  /* info cards */
  .bm-info-grid{
    margin-top:18px;
  }
  .bm-info{
    background:var(--white);
    border:1px solid #E2E7EF;
    border-radius:12px;
    padding:22px 24px;
    text-align:center;
  }
  .bm-info h3{
    font-family:'Oswald',sans-serif;
    font-size:14px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    margin:0 0 10px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
  }
  .bm-info.affects h3{color:var(--rust);}
  .bm-info h3::before{
    content:"";
    width:7px;height:7px;
    border-radius:50%;
    background:currentColor;
    display:inline-block;
  }
  .bm-info p{
    font-size:14px;
    line-height:1.6;
    color:var(--ink-soft);
    margin:0;
  }
  @media (max-width:680px){
    .bm-table-head{display:none;}
    .bm-row{
      grid-template-columns:1fr;
      row-gap:8px;
      padding:20px 20px;
    }
    .bm-cost{font-size:20px;}
  }
