/*
 Theme Name:   Azuri Group
 Theme URI:    https://azurigroup.com.au
 Description:  GeneratePress child theme
 Author:       Azuri Group
 Author URI:   https://azurigroup.com.au
 Template:     generatepress
 Version:      0.1
*/

/* The four original tokens are the design system's --color-white,
   --color-navy-100, --color-navy-900 and --color-blue-500 under the names
   this theme already used for them, so they keep their existing names and
   every rule referencing them is untouched. The rest of the scale below is
   additive: the header design (see inc/header/) needs the intermediate
   steps of both ramps, which until now were written as bare hex literals
   wherever they happened to be needed (#d6dcff in the QuadMenu dropdown
   rules, #7386ff repeated inline in the top bar's SVG data URIs, and so
   on). New work should use the tokens; the existing literals are left as
   they are rather than swept up in the same pass. */
:root {
  --medbill-white: #ffffff;
  --medbill-light: #f3f2f8;
  --medbill-dark: #141129;
  --medbill-primary: #7386ff;

  /* Blue ramp. --medbill-primary is the 500 step; 100 is the nav item and
     mega panel card hover fill, 200 the existing dropdown background, 300
     the accent for icons and hover borders on dark, 400 the primary
     button's hover state. */
  --medbill-blue-100: #eef0ff;
  --medbill-blue-200: #d6dcff;
  --medbill-blue-300: #acb6ff;
  --medbill-blue-400: #8596ff;

  /* Navy ramp. --medbill-light is the 100 step and --medbill-dark the 900;
     200 is the standard border and the muted text colour on dark
     backgrounds, 600 secondary body text, 800 the raised surface used for
     cards sitting on a navy background. */
  --medbill-navy-200: #d0cdd9;
  --medbill-navy-600: #545267;
  --medbill-navy-800: #1c1a36;

  /* Header metrics, single source of truth for both the header's own rules
     and the clearance the Flexible Content template's first section needs
     underneath it (see .medbill-sections > *:first-child below), which
     previously repeated the total as a hard-coded 140px/97px. */
  --medbill-utility-bar-height: 52px;
  --medbill-nav-height: 76px;
  --medbill-header-height: calc(var(--medbill-utility-bar-height) + var(--medbill-nav-height));

  /* The measure the header and footer line up to, so their contents sit on
     the same left and right edges as the page content between them.

     Page content doesn't state its own edge anywhere: it falls out of three
     rules in the Azuri grid that were never meant to be read together -
     .azuri-container's max-width and padding, .equal-height's -15px side
     margins, and .azuri_inner's 20px padding. The gutter below is the sum
     of the last two plus the container's own padding at each width:

       >= 1200px   0 - 15 + 20  =  5px, inside a 1280px container
       1024-1199  25 - 15 + 20  = 30px, container is full width here
       <= 1023    25 +  0 +  0  = 25px, where the grid zeroes both its own
                                        margin and .azuri_inner's padding

     Anything that should align with page content uses these two rather than
     restating a number, so the three bands can't drift apart again. */
  --medbill-container: 1280px;
  --medbill-gutter: 5px;
}
@media only screen and (max-width: 1199px) {
  :root {
    --medbill-gutter: 30px;
  }
}
@media only screen and (max-width: 1023px) {
  :root {
    --medbill-utility-bar-height: 44px;
    --medbill-nav-height: 64px;
    --medbill-gutter: 25px;
  }
}
/* Smoothly animates same-page navigation to a "#anchor" link (e.g. a
   flexible content row's Title Anchor field) instead of an instant jump.
   Covers clicks on any in-page anchor link automatically; landing on the
   page with the anchor already in the URL is handled separately in
   medbill_print_smooth_scroll_script() (functions.php), since browsers
   skip this preference for that initial jump-to-hash regardless. */
html {
  scroll-behavior: smooth;
}

/* The sitewide header is fixed and overlays page content rather than
   pushing it down, so the Flexible Content template's first section needs
   its own clearance or the header sits on top of it. Added to the first
   section's own padding-top (not a separate wrapper) so its background
   colour/image extends to cover the clearance area too, rather than leaving
   a mismatched plain gap above it. Written as one calc()'d value per
   spacing_top tier, stacked on top of that layout's own chosen spacing
   rather than replacing it, and higher specificity than the plain
   spacing_top_x rules so it wins whenever this happens to be the first
   section on the page.

   --medbill-clearance is the header's own height plus a small constant, so
   the two can't drift apart: the totals were previously hard-coded per
   breakpoint (140px desktop / 97px mobile) and had to be re-measured by
   hand every time a header row changed height. The desktop total is
   unchanged at 140px (128px of header + 12px); mobile grows from 97px to
   120px because the new mobile header is taller than the .mobile-wrap bar
   it replaces. The mobile media query the values used to need is gone -
   --medbill-utility-bar-height and --medbill-nav-height already change at
   that same 1023px breakpoint, so every tier below follows automatically. */
.medbill-sections > *:first-child {
  --medbill-clearance: calc(var(--medbill-header-height) + 12px);
  padding-top: var(--medbill-clearance);
}
.medbill-sections > *:first-child.spacing_top_sm {
  padding-top: calc(var(--medbill-clearance) + 1.5rem);
}
.medbill-sections > *:first-child.spacing_top_md {
  padding-top: calc(var(--medbill-clearance) + 3rem);
}
.medbill-sections > *:first-child.spacing_top_lg {
  padding-top: calc(var(--medbill-clearance) + 5rem);
}
.medbill-sections > *:first-child.spacing_top_xl {
  padding-top: calc(var(--medbill-clearance) + 8rem);
}

a
/*fonts*/
/* @import url("https://use.typekit.net/key2ugd.css"); */
#quadmenu .quadmenu-navbar-nav {
  display: block !important;
}
#quadmenu .quadmenu-navbar-nav > li {
  height: 60px !important;
  display: inline-block !important;
}
#quadmenu
  .quadmenu-navbar-nav
  > li.quadmenu-item.quadmenu-has-caret
  > a
  > .quadmenu-item-content
  > .quadmenu-text {
  padding-right: 1em !important;
}
@media only screen and (min-width: 1200px) {
  #quadmenu .quadmenu-navbar-nav li.quadmenu-item .quadmenu-item-content {
    padding: 8px !important;
  }
}
article#post-454 section.inner_.section3 {
  padding-top: 0;
}
/* Sitewide type scale (typography spec: see the "Typography" sheet in the
   design source). Sets the default size/line-height/spacing/weight for
   every heading level, body copy, .eyebrow, and .large paragraphs - any
   layout-specific selector further down this file that repeats one of
   these properties on the same element is a deliberate deviation (e.g. a
   card that zeroes out a paragraph's margin-bottom to sit flush above a
   button) and should be left as-is unless it's actually drifted from the
   scale with no such reason. h1.display is for the rare hero moment that
   needs to run bigger than a page's actual <h1> - it's a size, not a
   heading level, so it composes with h1/h2/etc. (e.g. `<h1 class="display">`)
   rather than replacing them. */
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  /* Loaded directly from Google Fonts as a variable font (see
     medbill_enqueue_google_fonts() in functions.php) rather than the
     --gp-font--dm-sans-36pt/--gp-font--dm-sans split GeneratePress's
     self-hosted copy used - its built-in optical-size axis renders the
     correct cut at any size on its own. */
  font-family: "DM Sans", sans-serif;
  font-style: normal;
  color: #141129;
}
h1,
.h1,
h1.display {
  font-weight: 700;
}
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-weight: 600;
}
h1.display {
  font-size: 52px;
  line-height: 1.2;
  margin-bottom: 0.5em;
}
h1,
.h1 {
  font-size: 48px;
  line-height: 1.2;
  margin-bottom: 0.5em;
}
h2,
.h2 {
  font-size: 32px;
  line-height: 1.3;
  margin-bottom: 0.4em;
}
h3,
.h3 {
  font-size: 24px;
  line-height: 1.3;
  margin-bottom: 0.2em;
}
h4,
.h4 {
  font-size: 20px;
  line-height: 1.4;
  margin-bottom: 0.2em;
}
h5,
.h5 {
  font-size: 18px;
  line-height: 1.4;
  margin-bottom: 0.2em;
}
h6,
.h6 {
  font-size: 16px;
  line-height: 1.4;
  margin-bottom: 0.2em;
}
p {
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 1.5em;
  font-weight: 400;
}
p.large,
.p-large {
  font-size: 20px;
  line-height: 1.5;
  margin-bottom: 1.5em;
  font-weight: 500;
}
/* .eyebrow_badge (the pill-shaped label used across every flexible layout)
   is this site's only real-world "eyebrow" element - bare .eyebrow doesn't
   appear anywhere, so it's included here for any future use of the plain
   spec class, but .eyebrow_badge's own font-size further down (currently
   11.6px, not 10px - flagged separately) is what's actually live. */
.eyebrow {
  font-size: 10px;
  line-height: 1;
  margin-bottom: 0;
  font-weight: 400;
}
.main-navigation ul ul {
  border-radius: 10px;
}
body {
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 16px;
  line-height: 1.5;
}
.quadmenu-row {
  max-width: 1280px;
  margin-left: auto !important;
  margin-right: auto !important;
  border: 0 !important;
  padding-top: 60px !important;
  padding-bottom: 60px !important;
  left: 50px !important;
  overflow: hidden !important;
}
#quadmenu.quadmenu-is-horizontal
  .quadmenu-navbar-nav
  li.quadmenu-dropdown
  > .quadmenu-dropdown-menu.quadmenu-dropdown-stretch-dropdown {
  backdrop-filter: blur(21.760099px);
  --webkit-backdrop-filter: blur(21.760099px);
  -webkit-backdrop-filter: blur(21.760099px);
  background-color: rgba(6, 5, 15, 0.5);
}
ul.quadmenu-row h3 {
  font-weight: bold;
  font-size: 22px;
  margin-top: 20px;
  color: #fff;
  margin-bottom: 10px;
}
ul.quadmenu-row p {
  font-size: 16px;
  line-height: 30px;
  color: #d0cdd9;
}
#quadmenu.quadmenu-generatepress
  .quadmenu-navbar-nav
  .quadmenu-dropdown-menu
  .button {
  background-color: transparent !important;
  padding: 0;
  border-radius: 0 !important;
}
#quadmenu.quadmenu-generatepress
  .quadmenu-navbar-nav
  .quadmenu-dropdown-menu
  .button
  a {
  color: #acb6ff !important;
  font-weight: normal;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.278" height="11.057" viewBox="0 0 6.278 11.057"><g transform="translate(-16.939 17.496) rotate(-90)"><path d="M16.436,18l-4.468,4.468L7.5,18" transform="translate(0 0)" fill="none" stroke="%23acb6ff" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
  background-repeat: no-repeat;
  background-position: center right;
  padding-right: 25px;
}
#quadmenu.quadmenu-is-horizontal
  .quadmenu-navbar-nav
  li.quadmenu-item
  > .quadmenu-dropdown-menu {
  top: 130% !important;
}
.menu_div {
  display: flex;
  align-items: center;
  margin-bottom: 30px;
}
.menu_div .left {
  display: flex;
}
.menu_div .left img {
  width: 150px;
}
.menu_div .right {
  padding-left: 24px;
}
.menu_div .right h3 {
  height: 70px;
  margin-bottom: 0;
  margin-top: 0;
}
section.home_,
.inner_page_header,
section.inner_ {
  position: relative;
}
/* Base .inner_page_header look (background, text-box typography). Moved here from the
   "Inner Pages Header" GenerateBlocks hook element (gp_elements post 183) so it still applies
   on pages using template-flexible-content.php, where that element is suppressed. */
.inner_page_header .azuri_col_12 {text-align: center;}.inner_page_header {padding-top: 200px;padding-bottom: 80px;background-color: #141129;background-repeat: no-repeat;background-size: cover;background-position: center;}@media only screen and (min-width: 781px) {.inner_page_header {background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1920' height='761' viewBox='0 0 1920 761'%3E%3Cdefs%3E%3CradialGradient id='b' cx='.5' cy='.5' r='.5' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237386ff' stop-opacity='.435'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='c' cx='.5' cy='.5' r='.525' gradientTransform='matrix(1 0 0 .779 0 .11)' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%23a5b1ff'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 41h1920v761H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cpath fill='%23141129' d='M0 0h1920v761H0z'/%3E%3Cg clip-path='url(%23a)' transform='translate(0 -41)'%3E%3Cellipse cx='1330.5' cy='811' rx='1330.5' ry='811' transform='translate(-947 104)' opacity='.704' fill='url(%23b)'/%3E%3Cellipse cx='862' cy='600' rx='862' ry='600' transform='translate(840 -639)' opacity='.704' fill='url(%23b)'/%3E%3Cpath d='M239.5 959.5h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm0-239.5v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V.5h-1v119h-119V.5h-1v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v112h1v-112h119v112h1v-112h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119h120v-1h-120V0Z' transform='translate(0 -118)' opacity='.209' fill='url(%23c)'/%3E%3C/g%3E%3C/svg%3E");}}@media only screen and (max-width: 780.5px) {.inner_page_header {background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='390' height='1597' viewBox='0 0 390 1597'%3E%3Cdefs%3E%3CradialGradient id='a' cx='.5' cy='.5' r='.632' gradientTransform='matrix(1 0 0 .942 0 .029)' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%23a5b1ff'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='b' cx='.5' cy='.5' r='.5' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237386ff' stop-opacity='.435'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath fill='%23141129' d='M0 0h390v1597H0z'/%3E%3Cg clip-path='url(%23clip-path)' transform='translate(-2596 2383)'%3E%3Cg transform='translate(2596 -2383)'%3E%3Cpath d='M170.032 681.195H85.549v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0H341.13v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0h-84.484v-84.484H596Zm85.193 0h-84.484v-84.484h84.484Zm85.194 0H681.9v-84.484h84.484Zm85.194 0H767.1v-84.484h84.484Zm85.194 0h-84.485v-84.484h84.484Zm85.194 0h-84.485v-84.484h84.484Zm85.194 0h-84.485v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484ZM170.032 596H85.549v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484Zm85.194 0H341.13v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484ZM596 596h-84.482v-84.483H596Zm85.193 0h-84.482v-84.483h84.484Zm85.194 0H681.9v-84.483h84.484Zm85.194 0H767.1v-84.483h84.484Zm85.194 0h-84.483v-84.483h84.484Zm85.194 0h-84.483v-84.483h84.484Zm85.194 0h-84.483v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484ZM170.032 510.807H85.549v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484Zm85.194 0H341.13v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484Zm85.194 0h-84.484v-84.483H596Zm85.193 0h-84.484v-84.483h84.484Zm85.194 0H681.9v-84.483h84.484Zm85.194 0H767.1v-84.483h84.484Zm85.194 0h-84.485v-84.483h84.484Zm85.194 0h-84.485v-84.483h84.484Zm85.194 0h-84.485v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484Zm85.194 0h-84.484v-84.483h84.484ZM170.032 425.614H85.549V341.13h84.484Zm85.194 0h-84.484V341.13h84.484Zm85.194 0h-84.484V341.13h84.484Zm85.194 0H341.13V341.13h84.484Zm85.194 0h-84.484V341.13h84.484Zm85.194 0h-84.484V341.13H596Zm85.193 0h-84.484V341.13h84.484Zm85.194 0H681.9V341.13h84.484Zm85.194 0H767.1V341.13h84.484Zm85.194 0h-84.485V341.13h84.484Zm85.194 0h-84.485V341.13h84.484Zm85.194 0h-84.485V341.13h84.484Zm85.194 0h-84.484V341.13h84.484Zm85.194 0h-84.484V341.13h84.484ZM170.032 340.42H85.549v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0H341.13v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0h-84.484v-84.484H596Zm85.193 0h-84.484v-84.484h84.484Zm85.194 0H681.9v-84.484h84.484Zm85.194 0H767.1v-84.484h84.484Zm85.194 0h-84.485v-84.484h84.484Zm85.194 0h-84.485v-84.484h84.484Zm85.194 0h-84.485v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484ZM170.032 255.226H85.549v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0H341.13v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0h-84.484v-84.484H596Zm85.193 0h-84.484v-84.484h84.484Zm85.194 0H681.9v-84.484h84.484Zm85.194 0H767.1v-84.484h84.484Zm85.194 0h-84.485v-84.484h84.484Zm85.194 0h-84.485v-84.484h84.484Zm85.194 0h-84.485v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484Zm85.194 0h-84.484v-84.484h84.484ZM170.032 170.032H85.549V85.549h84.484Zm85.194 0h-84.484V85.549h84.484Zm85.194 0h-84.484V85.549h84.484Zm85.194 0H341.13V85.549h84.484Zm85.194 0h-84.484V85.549h84.484Zm85.194 0h-84.484V85.549H596Zm85.193 0h-84.484V85.549h84.484Zm85.194 0H681.9V85.549h84.484Zm85.194 0H767.1V85.549h84.484Zm85.194 0h-84.485V85.549h84.484Zm85.194 0h-84.485V85.549h84.484Zm85.194 0h-84.485V85.549h84.484Zm85.194 0h-84.484V85.549h84.484Zm85.194 0h-84.484V85.549h84.484Zm0-170.032v84.839h-84.484V0h-.71v84.839h-84.484V0h-.71v84.839h-84.485V0h-.711v84.839h-84.483V0h-.71v84.839h-84.484V0h-.71v84.839H767.1V0h-.711v84.839H681.9V0h-.71v84.839h-84.479V0H596v84.839h-84.482V0h-.711v84.839h-84.483V0h-.71v84.839H341.13V0h-.71v84.839h-84.483V0h-.711v84.839h-84.484V.355h-.71v84.484H85.549V.355h-.709v84.484H0v.71h84.839v84.484H0v.711h84.839v84.483H0v.71h84.839v84.483H0v.71h84.839v84.484H0v.711h84.839v84.483H0v.71h84.839V596H0v.71h84.839v84.484H0v.711h84.839v79.513h.709v-79.512h84.484v79.513h.71v-79.513h84.484v79.159h.711v-79.159h84.483v79.159h.71v-79.159h84.484v79.159h.71v-79.159h84.484v79.159h.711v-79.159H596v79.159h.709v-79.159h84.484v79.159h.71v-79.159h84.484v79.159h.711v-79.159h84.483v79.159h.71v-79.159h84.484v79.159h.71v-79.159h84.484v79.159h.711v-79.159h84.483v79.159h.71v-79.159h84.484v79.159h.71v-79.159h84.484v79.159h.711v-79.159h84.838v-.711h-84.838v-84.484h84.838V596h-84.838v-84.483h84.838v-.71h-84.838v-84.483h84.838v-.711h-84.838V341.13h84.838v-.71h-84.838v-84.484h84.838v-.71h-84.838v-84.483h84.838v-.711h-84.838V85.549h85.193v-.71h-85.193V0Z' transform='translate(-487 -.5)' opacity='.209' fill='url(%23a)'/%3E%3Cellipse cx='570' cy='397' rx='570' ry='397' transform='translate(-140 -507)' opacity='.704' fill='url(%23b)'/%3E%3Cellipse cx='1094.5' cy='667.5' rx='1094.5' ry='667.5' transform='translate(-1221 264)' opacity='.704' fill='url(%23b)'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");}}.inner_page_header .text-box h1{font-size: 48px;color: #fff;}.inner_page_header .text-box h1 b {background: -webkit-linear-gradient(45deg, #D6DCFF, #7386FF);-webkit-background-clip: text;-webkit-text-fill-color: transparent;}.inner_page_header .text-box p {color: #d0cdd9;margin-bottom: 1.5em;}.inner_page_header .text-box + .button {margin-top: 26px;}@media only screen and ( min-width:240px) and (max-width:480px) {.inner_page_header .text-box h1 {font-size: 30px !important;}.inner_page_header .text-box p {font-size: 14px;line-height: 1.5em;}}@media only screen and ( min-width:240px) and (max-width:1023px) {.inner_page_header {padding-top: 120px !important;padding-bottom: 40px !important;}.inner_page_header .text-box h1 {font-size: 38px;}.inner_page_header .text-box p {padding-top: 0px;margin-bottom: 30px;}.inner_page_header .button {margin-bottom: 40px;}.inner_page_header picture {margin: 0 auto;}}

/* Banner - Image (template-flexible-content.php) adds bg_x/spacing_top_x/
   spacing_bottom_x classes just like every other flexible layout, but
   nothing previously read them here, so the Settings tab looked broken.
   These overrides make them work without touching the unconditional base
   rule above, which still has to apply as-is for the "Inner Pages Header"
   hook on every other page, where those classes never exist. The radial-
   gradient artwork is native to the dark look, so it's kept only for
   bg_dark. Header-clearance is handled once, generically, by
   .medbill-sections, so it's intentionally not duplicated in these
   spacing values. */
.inner_page_header.bg_white,
.inner_page_header.bg_light,
.inner_page_header.bg_primary {
  background-image: none !important;
}
.inner_page_header.bg_white {
  background-color: var(--medbill-white);
}
.inner_page_header.bg_light {
  background-color: var(--medbill-light);
}
.inner_page_header.bg_primary {
  background-color: var(--medbill-primary);
}
/* Gradient highlight for bold text inside any dark-background section's
   heading. Previously hand-copied onto .inner_page_header only, so other
   dark sections (e.g. Banner - Checklist) never picked it up when editors
   used bold in their heading. Generalised via bg_dark so every layout gets
   it automatically. */
section.inner_.bg_dark .text-box h1 b,
section.inner_.bg_dark .text-box h2 b,
.inner_page_header.bg_dark .text-box h1 b,
section.inner_.bg_dark .text-box h1 strong,
section.inner_.bg_dark .text-box h2 strong,
.inner_page_header.bg_dark .text-box h1 strong,
section.inner_.banner_checklist.bg_dark .checklist_list li b,
section.inner_.banner_checklist.bg_dark .checklist_list li strong {
  background: -webkit-linear-gradient(#d6dcff, #7386ff);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.inner_page_header.bg_white .text-box h1,
.inner_page_header.bg_light .text-box h1 {
  color: var(--medbill-dark);
}
.inner_page_header.bg_white .text-box h1 b,
.inner_page_header.bg_light .text-box h1 b {
  background: -webkit-linear-gradient(45deg, var(--medbill-primary), #4959c1);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.inner_page_header.bg_white .text-box p,
.inner_page_header.bg_light .text-box p {
  color: #545267;
}
.inner_page_header.spacing_top_sm {
  padding-top: 1.5rem;
}
.inner_page_header.spacing_top_md {
  padding-top: 3rem;
}
.inner_page_header.spacing_top_lg {
  padding-top: 5rem;
}
.inner_page_header.spacing_top_xl {
  padding-top: 8rem;
}
.inner_page_header.spacing_bottom_sm {
  padding-bottom: 1.5rem;
}
.inner_page_header.spacing_bottom_md {
  padding-bottom: 3rem;
}
.inner_page_header.spacing_bottom_lg {
  padding-bottom: 5rem;
}
.inner_page_header.spacing_bottom_xl {
  padding-bottom: 8rem;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  .inner_page_header.spacing_top_sm {
    padding-top: 1.5rem !important;
  }
  .inner_page_header.spacing_top_md {
    padding-top: 3rem !important;
  }
  .inner_page_header.spacing_top_lg {
    padding-top: 5rem !important;
  }
  .inner_page_header.spacing_top_xl {
    padding-top: 8rem !important;
  }
  .inner_page_header.spacing_bottom_sm {
    padding-bottom: 1.5rem !important;
  }
  .inner_page_header.spacing_bottom_md {
    padding-bottom: 3rem !important;
  }
  .inner_page_header.spacing_bottom_lg {
    padding-bottom: 5rem !important;
  }
  .inner_page_header.spacing_bottom_xl {
    padding-bottom: 8rem !important;
  }
}

.medbill-sections {
  width: 100%;
}
/* Flexible content layout: spacing/background modifiers, see template-flexible-content.php. Adjust to taste. */
section.inner_.bg_white {
  background-color: var(--medbill-white);
}
section.inner_.bg_light {
  background-color: var(--medbill-light);
}
section.inner_.bg_dark {
  background-color: var(--medbill-dark);
  color: var(--medbill-white);
}
section.inner_.bg_primary {
  background-color: var(--medbill-primary);
  color: var(--medbill-white);
}
/* Headings declare their own color globally (h1-h6 rule above), so they don't
   inherit the section-level color set by bg_dark/bg_primary. Force it explicitly
   here so any current or future flexible layout stays legible on those backgrounds. */
section.inner_.bg_dark h1,
section.inner_.bg_dark h2,
section.inner_.bg_dark h3,
section.inner_.bg_dark h4,
section.inner_.bg_dark h5,
section.inner_.bg_dark h6,
section.inner_.bg_dark p,
section.inner_.bg_primary h1,
section.inner_.bg_primary h2,
section.inner_.bg_primary h3,
section.inner_.bg_primary h4,
section.inner_.bg_primary h5,
section.inner_.bg_primary h6,
.cta_form_card h1,
.cta_form_card h2,
.cta_form_card h3,
.cta_form_card h4,
.cta_form_card h5,
.cta_form_card h6 {
  color: var(--medbill-white);
}
/* The site's global link colour (GeneratePress Customizer) is white, which only
   reads correctly on dark/primary sections. .btn_simple.second has no colour of
   its own and relies on that inherited default, so give it a dark colour on
   white/light sections too. */
section.inner_.bg_white .btn_simple.second,
section.inner_.bg_light .btn_simple.second {
  color: var(--medbill-dark);
}
/* Same root cause as .btn_simple.second above: plain inline links inside
   WYSIWYG content (e.g. heading_and_description, card/quote text) have no
   colour of their own either, so they inherit that same white default and
   disappear on white/light sections. Excludes the styled button classes
   above, which already set their own colour regardless of section bg. */
section.inner_.bg_white a:not(.btn):not(.btn_simple):not(.btn_secondary),
section.inner_.bg_light a:not(.btn):not(.btn_simple):not(.btn_secondary),
.inner_page_header.bg_white a:not(.btn):not(.btn_simple):not(.btn_secondary),
.inner_page_header.bg_light a:not(.btn):not(.btn_simple):not(.btn_secondary) {
  color: var(--medbill-primary);
}
section.inner_.spacing_top_sm {
  padding-top: 1.5rem;
}
section.inner_.spacing_top_md {
  padding-top: 3rem;
}
section.inner_.spacing_top_lg {
  padding-top: 5rem;
}
section.inner_.spacing_top_xl {
  padding-top: 8rem;
}
section.inner_.spacing_bottom_sm {
  padding-bottom: 1.5rem;
}
section.inner_.spacing_bottom_md {
  padding-bottom: 3rem;
}
section.inner_.spacing_bottom_lg {
  padding-bottom: 5rem;
}
section.inner_.spacing_bottom_xl {
  padding-bottom: 8rem;
}

/* Section alignment (Settings tab, layouts with a full-width heading
   text-box only): left/right keep the same max-width as centered, per
   explicit instruction, just anchored to one side by dropping the auto
   margin on that side rather than centering. Scoped to a .text-box that's a
   direct child of a col_12's .azuri_inner, so it targets only the main
   heading block and not any other .text-box elsewhere in the same section
   (e.g. a narrower column's own text-box, or a tab panel's body text). */
section.inner_.align_left .azuri_col_12 > .azuri_inner > .text-box,
section.inner_.align_center .azuri_col_12 > .azuri_inner > .text-box,
section.inner_.align_right .azuri_col_12 > .azuri_inner > .text-box {
  max-width: 960px;
}
section.inner_.align_left .azuri_col_12 > .azuri_inner > .text-box {
  text-align: left;
  margin-right: auto;
}
section.inner_.align_center .azuri_col_12 > .azuri_inner > .text-box {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
section.inner_.align_right .azuri_col_12 > .azuri_inner > .text-box {
  text-align: right;
  margin-left: auto;
}

/* Flexible layout: Banner - Checklist (Figma node 2032:5599) */
section.inner_.banner_checklist,
section.inner_.banner_cta {
  background-image: linear-gradient(
    135deg,
    rgba(115, 134, 255, 0.16),
    rgba(255, 255, 255, 0) 60%
  );
}
/* On bg_white the tint gradient above reads as a smudge against the plain
   white background rather than a hero treatment, so Banner - Checklist
   drops it there; the checklist card's own border/fill (see .checklist_card
   below) carries the visual weight instead. */
section.inner_.banner_checklist.bg_white {
  background-image: none;
}
/* Shared "dark hero" artwork for Banner - Checklist and Banner - Image when
   bg_dark is selected, overriding the plain tint/old artwork above with
   higher specificity. Defined once and reused across both since it's the
   same large data URI. */
section.inner_.banner_checklist.bg_dark,
.inner_page_header.bg_dark {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1921' height='1213' viewBox='0 0 1921 1213'%3E%3Cdefs%3E%3CradialGradient id='b' cx='.5' cy='.5' r='.5' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237386ff' stop-opacity='.435'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='c' cx='.5' cy='.5' r='.632' gradientTransform='matrix(1 0 0 .942 0 .029)' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%23a5b1ff'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3CclipPath id='a'%3E%3Cpath fill='%23141129' d='M0 43h1921v1213H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cpath fill='%23141129' d='M0 0h1921v1213H0z'/%3E%3Cg clip-path='url(%23a)' transform='translate(0 -43)'%3E%3Cellipse cx='1330.5' cy='811' rx='1330.5' ry='811' transform='translate(-810 252)' opacity='.704' fill='url(%23b)'/%3E%3Cpath d='M239.5 959.5h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm0-239.5v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V.5h-1v119h-119V.5h-1v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v112h1v-112h119v112h1v-112h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119h120v-1h-120V0Z' transform='translate(0 -166.5)' opacity='.209' fill='url(%23c)'/%3E%3Cellipse cx='862' cy='600' rx='862' ry='600' transform='translate(826 -639)' opacity='.704' fill='url(%23b)'/%3E%3C/g%3E%3C/svg%3E");
}
/* Same opaque pill treatment used by .medbill-racp .hero-pill: an opaque
   background + border of its own, so it reads the same way regardless of
   which bg_color the section around it uses (no bg-specific variants needed). */
.eyebrow_badge {
  /* display: inline-table (not inline-flex/inline-block) so that once the
     text is too wide for the available space and wraps, the box shrinks to
     the width of its widest wrapped line instead of the full available
     width, while still sitting inline like inline-flex did. inline-flex/
     inline-block's shrink-to-fit formula - and "width: fit-content", which
     resolves to that same formula - both fall back to the full available
     width as soon as wrapping is needed; only table auto-layout accounts
     for the wrap when computing its own width. */
  display: inline-table;
  margin-bottom: 12px;
  border-radius: 1000px;
  background-color: var(--feature-color-tint, #eef0ff);
  border: 1px solid var(--feature-color-border, rgba(115, 134, 255, 0.3));
  color: var(--feature-color, var(--medbill-primary));
  /* Typography spec's plain .eyebrow is regular-weight with no
     margin-bottom - doesn't map onto this pill-badge treatment (bold,
     uppercase, tracked-out, and needs its own margin-bottom to clear
     whatever heading follows it in every layout that uses it), so weight/
     margin are left as they are; only font-size (was 11.6px) is aligned to
     the spec's 10px. */
  font-weight: bold;
  letter-spacing: 1.92px;
  text-transform: uppercase;
  font-size: 10px;
  line-height: 1.2em;
  padding: 6px 16px;
}
span.btn {
  background-color: var(--medbill-primary);
  color: var(--medbill-white);
  padding: 6px 16px;
  border-radius: 1000px;
}
/* Breadcrumb trail (Rank Math), shown above the heading via each layout's
   "Show Breadcrumbs" toggle on Banner - Image/Checklist/Logos. Same type
   styles as .eyebrow_badge, minus the pill background/border. */
.rank-math-breadcrumb {
  margin-bottom: 12px;
}
.rank-math-breadcrumb p,
.rank-math-breadcrumb p:last-child {
  margin: 0;
  font-weight: bold;
  font-size: 12px;
  letter-spacing: 1.92px;
  text-transform: uppercase;
  line-height: 1.4;
  text-align: left;
}
.rank-math-breadcrumb a,
.rank-math-breadcrumb .last {
  color: var(--medbill-primary);
}
.rank-math-breadcrumb a {
  text-decoration: none;
}
.rank-math-breadcrumb a:hover,
.rank-math-breadcrumb a:focus {
  text-decoration: underline;
}
.rank-math-breadcrumb .separator {
  color: var(--medbill-primary);
  opacity: 0.5;
  margin: 0 4px;
}
.text-box h1 {
  /* Typography spec: h1 is 48px/0.5em margin-bottom - both were previously
     a couple of px off (50px/20px), not a deliberate deviation. */
  font-size: 48px;
  margin-bottom: 0.5em;
}
section.inner_.banner_checklist .text-box p,
section.inner_.banner_logos .text-box p,
section.inner_.banner_cta .text-box p,
section.inner_.content_text_image .text-box p,
section.inner_.banner_checklist .text-box ul,
section.inner_.banner_logos .text-box ul,
section.inner_.banner_cta .text-box ul,
section.inner_.content_text_image .text-box ul {
  /* Typography spec: p is 1.5em (24px) margin-bottom - was a flat 50px,
     sized to also cover the gap before whichever button/checklist follows
     the text-box, not just space between paragraphs. That gap now lives on
     the following .button itself instead (see .text-box + .button below),
     so it survives this margin-bottom shrinking back down to the spec
     value. Banner - Logos has no button after its text-box (a checklist
     follows instead), so its own pre-checklist gap is just this 24px now,
     tighter than the old 50px. */
  margin-bottom: 1.5em;
}
/* Restores the extra breathing room the paragraph's own margin-bottom used
   to provide before a following CTA button, now that margin-bottom is the
   spec's smaller 24px rather than a flat 50px tuned for both purposes at
   once - 26px here plus the paragraph's 24px reproduces the original ~50px
   gap. Banner - Logos is deliberately not included: it has no button after
   its text-box (see above). */
section.inner_.banner_checklist .text-box + .button,
section.inner_.banner_cta .text-box + .button,
section.inner_.content_text_image .text-box + .button {
  margin-top: 26px;
}
/* A blockquote dropped into a banner's WYSIWYG (heading_and_description /
   page_title_and_description) reuses .eyebrow_badge's pill treatment -
   tinted background, coloured border, feature-colour text - instead of a
   plain quote style, so it reads as part of the same badge language as the
   eyebrow above it. border-radius: 1000px scales down on its own once the
   box is taller than a single line, same as .eyebrow_badge. The clearfix
   keeps a floated alignleft/alignright image (see below) inside the pill's
   padding instead of spilling past the bottom edge. */
section.inner_.banner_checklist .text-box blockquote,
section.inner_.banner_logos .text-box blockquote,
section.inner_.banner_cta .text-box blockquote,
.inner_page_header .text-box blockquote {
  margin: 0 0 24px;
  padding: 10px 18px;
  border-radius: 1000px;
  background-color: var(--feature-color-tint, #eef0ff);
  border: 1px solid var(--feature-color-border, rgba(115, 134, 255, 0.3));
  color: var(--feature-color, var(--medbill-primary));
  justify-self: flex-start;
  font-style: normal;
}
section.inner_.banner_checklist .text-box blockquote::after,
section.inner_.banner_logos .text-box blockquote::after,
section.inner_.banner_cta .text-box blockquote::after,
.inner_page_header .text-box blockquote::after {
  content: "";
  display: table;
  clear: both;
}
section.inner_.banner_checklist .text-box blockquote p,
section.inner_.banner_logos .text-box blockquote p,
section.inner_.banner_cta .text-box blockquote p,
.inner_page_header .text-box blockquote p {
  margin: 0;
  color: inherit;
  /* Same type treatment as .eyebrow_badge (bold, uppercase, tracked-out,
     10px) so the quote reads as the same badge language, not a mismatched
     plain-paragraph size/weight sitting inside a badge-coloured pill. */
  font-weight: bold;
  letter-spacing: 1.92px;
  text-transform: uppercase;
  font-size: 14px;
  line-height: 1.2em;
}
section.inner_.banner_checklist .text-box blockquote p + p,
section.inner_.banner_logos .text-box blockquote p + p,
section.inner_.banner_cta .text-box blockquote p + p,
.inner_page_header .text-box blockquote p + p {
  margin-top: 1em;
}
/* Images dropped into that same blockquote keep whichever align class the
   WYSIWYG's image toolbar applied (alignleft/alignright/aligncenter) -
   the theme doesn't style these classes anywhere else on the site, so
   without this an aligned image would just ignore the editor's choice and
   render at full width. No rule for alignnone/unclassed: that's the "no
   alignment" case, and an img is inline by default, so a medium-sized image
   dropped in with no alignment picked sits inline with the quote text on
   its own, matching wherever the editor placed it in the WYSIWYG. */
section.inner_.banner_checklist .text-box blockquote img,
section.inner_.banner_logos .text-box blockquote img,
section.inner_.banner_cta .text-box blockquote img,
.inner_page_header .text-box blockquote img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  /* Opaque white backing + rounded corners so the image reads as its own
     chip against the tinted pill, the same way .checklist_card's logo_grid
     gives logos their own contrast against a coloured background, rather
     than the image's own edges bleeding into the tint. */
  background-color: var(--medbill-white, #fff);
  border-radius: 4em;
  padding: 12px 32px;
}
section.inner_.banner_checklist .text-box blockquote img.alignleft,
section.inner_.banner_logos .text-box blockquote img.alignleft,
section.inner_.banner_cta .text-box blockquote img.alignleft,
.inner_page_header .text-box blockquote img.alignleft {
  float: left;
  margin: 4px 20px 4px 0;
}
section.inner_.banner_checklist .text-box blockquote img.alignright,
section.inner_.banner_logos .text-box blockquote img.alignright,
section.inner_.banner_cta .text-box blockquote img.alignright,
.inner_page_header .text-box blockquote img.alignright {
  float: right;
  margin: 4px 0 4px 20px;
}
section.inner_.banner_checklist .text-box blockquote img.aligncenter,
section.inner_.banner_logos .text-box blockquote img.aligncenter,
section.inner_.banner_cta .text-box blockquote img.aligncenter,
.inner_page_header .text-box blockquote img.aligncenter {
  display: block;
  margin: 0 auto 12px;
}
.button-flex-wrap {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}
.button_centered {
  justify-content: center;
}
.checklist_card {
  border-radius: 16px;
  padding: 26px;
}
/* Translucent overlay card reads on a dark/primary backdrop; on a white
   section it needs its own opaque background to stay visible (reuses
   .content_card's colours). On a light (lavender) section that same fill
   would match the section background, so it goes white there instead. */
section.inner_.bg_dark .checklist_card,
section.inner_.bg_primary .checklist_card {
  background-color: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
}
/* Dark-scheme counterpart to the light/lavender watermark further down -
   same artwork family, blue-toned to read against the translucent overlay
   fill above. */
section.inner_.bg_dark .checklist_card,
section.inner_.bg_primary .checklist_card {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='660' height='461' viewBox='0 0 660 461'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='.795' y1='-1.058' x2='.599' y2='.968' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237385ff'/%3E%3Cstop offset='1' stop-color='%237386ff' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform='translate(-940 -211)' clip-path='url(%23clip-path)'%3E%3Cpath d='M405.058 141.787C442.092 47.676 474.483 0 539.944 0c46.288 0 86.4 43.489 86.4 123.217v311.432h-81.989l2.607-310.06s.81-47.137-17.175-46.612c-11.622.339-17.607 19.234-36.124 63.81L428.865 294.1c-36.363 93.487-69.425 140.546-134.23 140.546-46.281 0-78.116-37.658-78.116-116.284l1.558-111.433s2.483-43.042-10.774-43.558c-14.1-.563-20.576 17.939-37 64.211L87.942 434.649H0l84.325-206.27C121.351 134.268 153.75 86.6 219.21 86.6c46.281 0 78.687 43.952 78.687 123.209l-1.087 101.545s-1.5 46.589 9.733 46.52c9.679-.054 14.237-10.149 27.463-41.73Z' transform='rotate(-1 11233.998 -56914.157)' opacity='.34' fill='url(%23a)'/%3E%3C/g%3E%3C/svg%3E");
  background-size: cover;
  background-position: top;
  background-repeat: no-repeat;
}
section.inner_.bg_white .checklist_card {
  background-color: var(--medbill-light);
  border: 1px solid #d0cdd9;
}
section.inner_.bg_light .checklist_card {
  background-color: var(--medbill-white);
  border: 1px solid #d0cdd9;
}
/* Light-scheme counterpart to the bg_dark/bg_primary watermark above - same
   artwork family, lavender/grey toned to match this card's own bg_white/
   bg_light fill. */
section.inner_.bg_white .checklist_card,
section.inner_.bg_light .checklist_card {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="660" height="638" viewBox="0 0 660 638"><defs><clipPath id="clip-path"><rect width="660" height="469" rx="15" transform="translate(849 211)" fill="%23fff"/></clipPath><linearGradient id="linear-gradient" x1="0.795" y1="-1.058" x2="0.599" y2="0.968" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="%2393909e"/><stop offset="1" stop-color="%23e4e2ef" stop-opacity="0"/></linearGradient></defs><g fill="%23f3f2f8" stroke="%23d0cdd9" stroke-width="1" opacity="0.44"><rect width="660" height="638" rx="14" stroke="none"/><rect x="0.5" y="0.5" width="659" height="637" rx="13.5" fill="none"/></g><g transform="translate(-849 -211)" clip-path="url(%23clip-path)"><path d="M482.822,169.009C526.966,56.83,565.576,0,643.6,0,698.779,0,746.59,51.838,746.59,146.873V518.095H648.862l3.107-369.586s.965-56.186-20.472-55.561c-13.853.4-20.987,22.927-43.059,76.061L511.2,350.566C467.857,462,428.447,518.095,351.2,518.095c-55.166,0-93.113-44.888-93.113-138.608l1.857-132.826s2.96-51.3-12.842-51.921c-16.8-.671-24.526,21.382-44.1,76.539L104.825,518.095H0l100.514-245.87c44.134-112.179,82.753-169,160.781-169,55.166,0,93.794,52.39,93.794,146.864l-1.3,121.041s-1.793,55.534,11.6,55.451c11.537-.064,16.97-12.1,32.735-49.742Z" transform="translate(814.97 183.025) rotate(-1)" opacity="0.34" fill="url(%23linear-gradient)"/></g></svg>');
  background-size: cover;
  background-position: top;
  background-repeat: no-repeat;
}
.checklist_card h3 {
  font-size: 24px;
  margin-bottom: 0.5em;
}
.checklist_list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.checklist_list li {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}
.checklist_list li:last-child {
  margin-bottom: 0;
}
/* .check_icon is a real <span> emitted per checklist_items row. The
   ::before below gives the same mark to a plain <ul> typed into Banner -
   Checklist's own wysiwyg, which has no span to hang it on - both share
   this one rule so the (large) inline SVG is defined once. */
.check_icon,
section.inner_.banner_checklist .text-box ul > li::before {
  content: '';
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="11.9966" height="10.5044" viewBox="0 0 11.9966 10.5044" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.7464 0.274437L3.58641 7.18444L1.68641 5.15444C1.33641 4.82444 0.786406 4.80444 0.386406 5.08444C-0.00359413 5.37444 -0.113594 5.88444 0.126406 6.29444L2.37641 9.95444C2.59641 10.2944 2.9764 10.5044 3.4064 10.5044C3.8164 10.5044 4.20641 10.2944 4.42641 9.95444C4.78641 9.48444 11.6564 1.29444 11.6564 1.29444C12.5564 0.374437 11.4664 -0.435563 10.7464 0.264437V0.274437Z" fill="%238596FF"/></svg>');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 11px;
}
section.inner_.bg_dark .check_icon,
section.inner_.bg_primary .check_icon,
section.inner_.banner_checklist.bg_dark .text-box ul > li::before,
section.inner_.banner_checklist.bg_primary .text-box ul > li::before {
  background-color: rgba(255, 255, 255, 0.2);
}
section.inner_.bg_white .check_icon,
section.inner_.bg_light .check_icon,
section.inner_.banner_checklist.bg_white .text-box ul > li::before,
section.inner_.banner_checklist.bg_light .text-box ul > li::before {
  background-color: rgba(115, 134, 255, 0.15);
}
/* The list itself, matching .checklist_list's own spacing so a wysiwyg list
   and a checklist_items list read identically. The ul sits inside .text-box,
   whose own rules (and the sitewide "ol, ul" margin) give it a bullet indent
   it no longer needs. */
section.inner_.banner_checklist .text-box ul {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}
/* Block with an absolutely positioned mark, deliberately NOT the flex row
   .checklist_list li uses.

   A checklist_items row wraps its text in a <span>, so that flex row only
   ever has two children. A list typed into the wysiwyg has no such wrapper,
   so every inline element in it becomes a flex item of its own: an item
   reading "<b>27%</b> average increase" turns into two columns with the
   16px gap between them, and the sentence stops behaving like a sentence.
   Keeping the li a block leaves the text one continuous run that wraps
   normally however much <b> is in it, and the mark sits in the padding. */
section.inner_.banner_checklist .text-box ul > li {
  display: block;
  position: relative;
  padding-left: 40px; /* 24px mark + the same 16px gap the flex row uses */
  margin-bottom: 16px;
}
section.inner_.banner_checklist .text-box ul > li:last-child {
  margin-bottom: 0;
}
/* Centres the 24px mark on the first line rather than on the whole item, so
   it stays put when an item wraps to two lines. 1.875em is the body
   line-height GeneratePress sets, giving a 30px first line at the inherited
   16px, so this resolves to 3px. */
section.inner_.banner_checklist .text-box ul > li::before {
  position: absolute;
  left: 0;
  top: calc((1.875em - 24px) / 2);
}
/* Highlight Item toggle (checklist_items repeater sub field, shared by
   Banner - Checklist/Banner - Logos/Content - Steps - see
   register-checklist-items-highlight-field.php). Lifts that row visually via
   a soft primary-coloured glow (box-shadow) rather than a background swap,
   so it stays whatever colour the surrounding card/section already is -
   lavender, white, translucent-dark, whatever - instead of introducing a
   white/lavender box that would clash with a dark/primary section. The
   negative side margins (matched by equal side padding, so the text itself
   stays where it would otherwise sit) let the glow bleed slightly past the
   list's own horizontal padding for a bit of "pop". Solid check icon still
   applies regardless of bg_color, since primary blue is the site's accent
   colour everywhere, not tied to a particular section colour scheme. */
.checklist_list li.is-highlighted {
  position: relative;
  margin-left: -20px;
  margin-right: -20px;
  padding: 12px 20px;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(115, 134, 255, 0.25), 0 0 0 1px rgba(115, 134, 255, 0.3);
}
.checklist_list li.is-highlighted .check_icon {
  background-color: var(--medbill-primary);
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="11.9966" height="10.5044" viewBox="0 0 11.9966 10.5044" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.7464 0.274437L3.58641 7.18444L1.68641 5.15444C1.33641 4.82444 0.786406 4.80444 0.386406 5.08444C-0.00359413 5.37444 -0.113594 5.88444 0.126406 6.29444L2.37641 9.95444C2.59641 10.2944 2.9764 10.5044 3.4064 10.5044C3.8164 10.5044 4.20641 10.2944 4.42641 9.95444C4.78641 9.48444 11.6564 1.29444 11.6564 1.29444C12.5564 0.374437 11.4664 -0.435563 10.7464 0.264437V0.274437Z" fill="%23fff"/></svg>');
}
/* Overrides the dark-background gradient-text rule above, which would
   otherwise still apply here since the highlighted card no longer has a
   background of its own that would force a plain-colour override anyway.
   Same specificity (4 classes, 3 elements) as that rule, so source order
   (this comes after) decides it. */
section.inner_.banner_checklist .checklist_list li.is-highlighted b,
section.inner_.banner_checklist .checklist_list li.is-highlighted strong,
section.inner_.banner_logos .checklist_list li.is-highlighted b,
section.inner_.banner_logos .checklist_list li.is-highlighted strong,
section.inner_.content_steps .checklist_list li.is-highlighted b,
section.inner_.content_steps .checklist_list li.is-highlighted strong {
  background: none;
  -webkit-text-fill-color: currentColor;
  color: var(--medbill-primary);
}
/* ...except on bg_primary, where the section itself is that same primary
   blue - recolouring bold text to match would make it unreadable, so it
   keeps the plain white every other bg_primary heading/paragraph already
   uses (see section.inner_.bg_primary above) instead. Extra bg_primary
   class beats the general rule above on specificity regardless of order. */
section.inner_.banner_checklist.bg_primary .checklist_list li.is-highlighted b,
section.inner_.banner_checklist.bg_primary .checklist_list li.is-highlighted strong,
section.inner_.banner_logos.bg_primary .checklist_list li.is-highlighted b,
section.inner_.banner_logos.bg_primary .checklist_list li.is-highlighted strong,
section.inner_.content_steps.bg_primary .checklist_list li.is-highlighted b,
section.inner_.content_steps.bg_primary .checklist_list li.is-highlighted strong {
  color: var(--medbill-white);
}
/* Video Tile - a hand-authored wrapper for a WYSIWYG field (add it via the
   Text/Code view, ACF wysiwyg fields don't have a "video tile" button).
   Wrap just the video + caption in it, not any heading above them - that
   heading stays a plain top-level tag outside .video_tile with its own
   normal spacing, it isn't part of the card:

   <h2>See what Medbill does &amp; how it works</h2>
   <div class="video_tile">
     <div class="video_tile_media">
       <iframe ...></iframe>
     </div>
     <div class="video_tile_caption">
       <h3>Medbill, in 47 seconds</h3>
       <p>Who we work with, what we do, and the results we deliver.</p>
       <a class="video_tile_link" href="..." target="_blank" rel="noopener">Watch full screen</a>
     </div>
   </div>

   .video_tile_link is optional - add your own <a> with whatever destination
   you need; this only supplies the arrow-suffixed link styling to match. */
.video_tile {
  border-radius: 20px;
  overflow: hidden;
  background-color: var(--medbill-dark);
  box-shadow: 0 24px 64px rgba(20, 17, 41, 0.2);
}
/* Same "dark hero" artwork as Banner - Checklist/Banner - Image's bg_dark,
   reused here so the video area reads as part of the same visual language
   rather than introducing a new background treatment. */
.video_tile_media {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1921' height='1213' viewBox='0 0 1921 1213'%3E%3Cdefs%3E%3CradialGradient id='b' cx='.5' cy='.5' r='.5' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237386ff' stop-opacity='.435'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='c' cx='.5' cy='.5' r='.632' gradientTransform='matrix(1 0 0 .942 0 .029)' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%23a5b1ff'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3CclipPath id='a'%3E%3Cpath fill='%23141129' d='M0 43h1921v1213H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cpath fill='%23141129' d='M0 0h1921v1213H0z'/%3E%3Cg clip-path='url(%23a)' transform='translate(0 -43)'%3E%3Cellipse cx='1330.5' cy='811' rx='1330.5' ry='811' transform='translate(-810 252)' opacity='.704' fill='url(%23b)'/%3E%3Cpath d='M239.5 959.5h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm-1560-120h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm120 0h-119v-119h119Zm0-239.5v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V0h-1v119.5h-119V.5h-1v119h-119V.5h-1v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v119H0v1h119.5v112h1v-112h119v112h1v-112h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5h119V1072h1V960.5H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119H1920v-1h-119.5v-119h120v-1h-120V0Z' transform='translate(0 -166.5)' opacity='.209' fill='url(%23c)'/%3E%3Cellipse cx='862' cy='600' rx='862' ry='600' transform='translate(826 -639)' opacity='.704' fill='url(%23b)'/%3E%3C/g%3E%3C/svg%3E");
}
.video_tile_media iframe {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
}
.video_tile_caption {
  padding: 32px 40px;
  text-align: center;
  background-color: var(--medbill-dark);
}
.video_tile_caption > * {
  margin: 0 0 16px;
}
.video_tile_caption > *:last-child {
  margin-bottom: 0;
}
.video_tile_caption h2,
.video_tile_caption h3,
.video_tile_caption h4 {
  color: var(--medbill-white);
}
.video_tile_caption p {
  color: #d0cdd9;
}
.video_tile_link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: bold;
  color: var(--medbill-primary);
}
.video_tile_link::after {
  content: "\2197";
}
.video_tile_link:hover {
  color: #8596ff;
  text-decoration: underline !important;
}
@media (max-width: 768px) {
  .video_tile_media {
    padding: 40px 20px;
  }
  .video_tile_caption {
    padding: 24px 20px;
  }
  .video_tile_caption h3 {
    font-size: 22px;
  }
}

/* Flexible layout: Banner - Logos (Figma node 2005:4439) */
section.inner_.banner_logos .checklist_list {
  margin-bottom: 40px;
}
section.inner_.banner_logos .checklist_card p {
  margin-bottom: 16px;
}
.logo_grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 40px;
}
.logo_grid img {
  height: 46px;
  width: auto;
  object-fit: contain;
  object-position: center top;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  .checklist_card {
    margin-top: 24px;
  }
  section.inner_.banner_checklist .text-box h1,
  section.inner_.banner_logos .text-box h1,
  section.inner_.banner_cta .text-box h1 {
    font-size: 38px;
  }
}
@media only screen and (min-width: 240px) and (max-width: 480px) {
  section.inner_.banner_checklist .text-box h1,
  section.inner_.banner_logos .text-box h1,
  section.inner_.banner_cta .text-box h1 {
    font-size: 30px;
  }
  section.inner_.banner_checklist .text-box p,
  section.inner_.banner_logos .text-box p,
  section.inner_.banner_cta .text-box p {
    font-size: 14px;
    line-height: 1.5em;
  }
}

/* Flexible layout: Content - Cards (Figma node 2034:11519) */
.text-box h2 {
  /* Typography spec: h2 is 32px/0.5em margin-bottom. */
  font-size: 32px;
  margin-bottom: 0.5em;
}
.text-box_centered {
  text-align: center;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
section.inner_.content_cards .text-box p {
  /* Typography spec: p is 1.5em (24px) margin-bottom - see the
     Banner - Checklist/CTA/Text and Image group above for why this was
     50px and where the rest of that gap now lives. */
  margin-bottom: 1.5em;
}
section.inner_.content_cards .text-box + .button {
  margin-top: 26px;
}
section.inner_.content_cards .content_cards_grid {
  justify-content: flex-start;
}
/* Only add the gap above the grid when there's an eyebrow/heading __full-wrap
   preceding it - see the same rule on Content - Columns for why. */
section.inner_.content_cards .__full-wrap ~ .content_cards_grid {
  margin-top: 40px;
}
/* 5 Columns doesn't divide evenly into the 12-column azuri_col_N grid, so it
   gets its own fixed 20%-width class instead (desktop only; mobile still
   stacks via azuri_xs_col_12 like every other column count) - same pattern
   as Content - Process Columns' "5 Columns". */
@media only screen and (min-width: 1024px) {
  section.inner_.content_cards .content_cards_span_5 {
    width: 20%;
  }
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  /* Columns stack full-width on mobile; without this each column's first
     card sits flush against the previous column's last card. Uses
     :not(:first-child) rather than :last-child so this still works
     correctly with more than 2 columns (desktop_columns). */
  section.inner_.content_cards .content_cards_grid .azuri_col:not(:first-child) .content_card:first-child {
    margin-top: 18px;
  }
}
section.inner_.content_cards .content_card {
  background-color: var(--medbill-light);
  border: 1px solid #d0cdd9;
  border-radius: 16px;
  padding: 26px;
}
/* .content_card is always light (lavender, or white on bg_light) regardless
   of the section's own bg_color, but headings don't declare their own
   colour (see the global h1-h6 rule), so on a bg_dark/bg_primary section
   the "force headings white" rule below would otherwise turn any heading
   inside card_text invisible against this still-light card. */
section.inner_.content_cards .content_card h1,
section.inner_.content_cards .content_card h2,
section.inner_.content_cards .content_card h3,
section.inner_.content_cards .content_card h4,
section.inner_.content_cards .content_card h5,
section.inner_.content_cards .content_card h6 {
  color: var(--medbill-dark);
}
/* On a light (lavender) section the card's usual lavender fill would match
   the section background, so it goes white there instead. */
section.inner_.content_cards.bg_light .content_card {
  background-color: var(--medbill-white);
}
section.inner_.content_cards .content_card:not(:last-child) {
  margin-bottom: 40px;
}
section.inner_.content_cards .content_card p,
section.inner_.content_cards .content_card li {
  color: #545267;
}

@media (max-width: 1023px) {
  section.inner_.content_cards .content_card:not(:last-child) {
    margin-bottom: 18px;
  }
}

/* Flexible layout: Content - Feature Cards (Figma node 2005:4437) */
section.inner_.content_feature_cards .content_feature_cards_grid {
  justify-content: flex-start;
}
/* Only add the gap above the grid when there's an eyebrow/heading __full-wrap
   preceding it - see the same rule on Content - Columns for why. */
section.inner_.content_feature_cards .__full-wrap ~ .content_feature_cards_grid {
  margin-top: 40px;
}
/* 5 Columns doesn't divide evenly into the 12-column azuri_col_N grid, so it
   gets its own fixed 20%-width class instead (desktop only; mobile still
   stacks via azuri_xs_col_12 like every other column count) - same pattern
   as Content - Process Columns' "5 Columns". */
@media only screen and (min-width: 1024px) {
  section.inner_.content_feature_cards .content_feature_cards_span_5 {
    width: 20%;
  }
}
section.inner_.content_feature_cards .feature_card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  height: 100%;
  background-color: var(--medbill-light);
  border: 1px solid #d0cdd9;
  border-radius: 16px;
  padding: 26px;
}
/* On a light (lavender) section the card's usual lavender fill would match
   the section background, so it goes white there instead - same pairing
   Content - Cards' .content_card uses. */
section.inner_.content_feature_cards.bg_light .feature_card {
  background-color: var(--medbill-white);
}
/* On a dark/primary section the card goes translucent white instead of its
   usual lavender fill, same pairing .checklist_card uses (see Banner -
   Checklist). Heading/body text below flip to their light equivalents to
   match. */
section.inner_.content_feature_cards.bg_dark .feature_card,
section.inner_.content_feature_cards.bg_primary .feature_card {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}
section.inner_.content_feature_cards .feature_card:not(:last-child) {
  margin-bottom: 40px;
}
@media (max-width: 1023px) {
  section.inner_.content_feature_cards .feature_card:not(:last-child) {
    margin-bottom: 18px;
  }
}
/* Plain block flow rather than a flex column with `gap` - card_text is a
   full wysiwyg field, so this can hold a mix of the fixed badge/heading
   plus however many wysiwyg blocks (p/ul/ol/blockquote/img) an editor adds,
   and each of those needs its own margin-bottom rather than one flat gap
   value applied uniformly regardless of what the block actually is. The
   last child's margin is zeroed below so there's no trailing space before
   the button that follows .feature_card_body. */
section.inner_.content_feature_cards .feature_card_body > *:last-child {
  margin-bottom: 0 !important;
}
section.inner_.content_feature_cards .feature_card_body .eyebrow_badge {
  margin-bottom: 18px;
}
section.inner_.content_feature_cards .feature_card h3 {
  width: 100%;
  font-size: 24px;
  margin: 0 0 18px;
  color: var(--medbill-dark);
}
section.inner_.content_feature_cards .feature_card_body > ul,
section.inner_.content_feature_cards .feature_card_body > ol,
section.inner_.content_feature_cards .feature_card_body > blockquote,
section.inner_.content_feature_cards .feature_card_body > img {
  margin: 0 0 18px;
}
section.inner_.content_feature_cards .feature_card_body img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}
section.inner_.content_feature_cards .feature_card p,
section.inner_.content_feature_cards .feature_card_body ul,
section.inner_.content_feature_cards .feature_card_body ol {
  width: 100%;
  margin: 0 0 18px;
  padding-left: 1.2em;
  color: #545267;
}
/* padding-left above only matters for ul/ol - reset it back out for p,
   which has no marker to indent for. */
section.inner_.content_feature_cards .feature_card p {
  padding-left: 0;
}
/* Text colours above assume the card's usual light fill - flip to their
   light-on-dark equivalents to match the translucent dark card above.
   #d0cdd9 is the same muted body-text colour Banner - Image's dark hero
   already uses for secondary text. */
section.inner_.content_feature_cards.bg_dark .feature_card h3,
section.inner_.content_feature_cards.bg_primary .feature_card h3 {
  color: var(--medbill-white);
}
section.inner_.content_feature_cards.bg_dark .feature_card p,
section.inner_.content_feature_cards.bg_primary .feature_card p,
section.inner_.content_feature_cards.bg_dark .feature_card_body ul,
section.inner_.content_feature_cards.bg_primary .feature_card_body ul,
section.inner_.content_feature_cards.bg_dark .feature_card_body ol,
section.inner_.content_feature_cards.bg_primary .feature_card_body ol {
  color: #d0cdd9;
}
section.inner_.content_feature_cards .btn_secondary,
section.inner_.content_icon_tiles .btn_secondary,
section.inner_.content_slider .btn_secondary {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  height: 40px;
  padding: 8px 12px;
  border-radius: 8px;
  background-color: var(--medbill-white);
  color: var(--medbill-dark);
  font-weight: bold;
  font-size: 14px;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.279" height="11.057" viewBox="0 0 6.279 11.057"><g id="Icon_feather-arrow-down" data-name="Icon feather-arrow-down" transform="translate(-16.939 17.496) rotate(-90)"><path id="Path_394" data-name="Path 394" d="M16.436,18l-4.468,4.468L7.5,18" transform="translate(0 0)" fill="none" stroke="%23141129" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
  background-repeat: no-repeat;
  background-position: center right 12px;
  padding-right: 30px;
  transition: 0.5s all;
}
section.inner_.content_feature_cards .btn_secondary:hover,
section.inner_.content_icon_tiles .btn_secondary:hover,
section.inner_.content_slider .btn_secondary:hover {
  background-color: #e6e4eb;
  padding-right: 35px;
  transition: 0.5s all;
}
section.inner_.content_slider .btn_secondary {
  margin-top: 10px;
}
/* .feature_card/.icon_tile/.slider_card go white instead of their usual
   lavender fill on a bg_light section (see the pairing above), so the button needs the
   inverse there too, or it'd match the card exactly the same way it would
   have matched .content_card's default lavender fill otherwise. */
section.inner_.content_feature_cards.bg_light .btn_secondary,
section.inner_.content_icon_tiles.bg_light .btn_secondary,
section.inner_.content_slider.bg_light .btn_secondary {
  background-color: var(--medbill-light);
}
section.inner_.content_feature_cards.bg_light .btn_secondary:hover,
section.inner_.content_icon_tiles.bg_light .btn_secondary:hover,
section.inner_.content_slider.bg_light .btn_secondary:hover {
  background-color: #e6e4eb;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  /* Columns stack full-width on mobile; without this each column's first
     card sits flush against the previous column's last card. Uses
     :not(:first-child) rather than :last-child so this still works
     correctly with more than 2 columns (desktop_columns). */
  section.inner_.content_feature_cards .content_feature_cards_grid .azuri_col:not(:first-child) .feature_card:first-child {
    margin-top: 18px;
  }
}

/* Flexible layout: Content - Steps (Figma node 2005:4438) */
/* Only add the gap above the grid when there's an eyebrow/heading __full-wrap
   preceding it - see the same rule on Content - Columns for why. */
section.inner_.content_steps .__full-wrap ~ .content_steps_grid {
  margin-top: 40px;
}
section.inner_.content_steps .steps_list {
  list-style: none;
  margin: 0;
  padding: 0;
}
section.inner_.content_steps .steps_list_item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}
section.inner_.content_steps .steps_list_item:not(:last-child) {
  margin-bottom: 40px;
}
section.inner_.content_steps .azuri_inner {
  justify-content: flex-start;
}
.icon_tile_box {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 8px;
  border-radius: 10px;
  background-color: var(--feature-color-tint, var(--medbill-light));
}
.icon_tile_box img {
  width: auto;
  height: 32px;
}
/* Feature Color icon recolour (see medbill_render_tile_icon() in
   functions.php) - only rendered in place of .icon_tile_box img when a page
   has a Feature Color set, since it flattens the icon to one solid colour
   via CSS mask and only looks right on the flat single-colour icon uploads
   Content - Icon Tiles/Columns expect. */
.icon_tile_mask {
  display: block;
  width: 32px;
  height: 32px;
  background-color: var(--feature-color);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
/* .icon_tile_box's colour should track whatever it's actually sitting on,
   not the section's bg_color as a proxy for that. In Content - Steps it
   sits directly on the section background, so those are the same thing -
   the default lavender fill already contrasts fine against white/dark/
   primary (all sufficiently different from lavender), and only needs
   overriding on a light (lavender) section, where it would otherwise match
   that background exactly. Content - Columns below is the opposite case:
   the icon box sits on a card whose colour doesn't track bg_color 1:1, so
   it keys off what the card itself renders as instead. Content - Icon
   Tiles overrides this box with its own always-on tint further down, since
   that card's fill is close enough in lightness to the default lavender
   fill here that they wouldn't contrast against each other. */
section.inner_.content_steps.bg_light .icon_tile_box {
  background-color: var(--medbill-white);
}
section.inner_.content_steps .step_number {
  color: var(--medbill-primary);
  font-weight: bold;
  font-size: 26px;
  width: 48px;
  height: 48px;
}
section.inner_.content_steps .step_body h3 {
  font-size: 24px;
  margin-bottom: 0.5em;
}
section.inner_.content_steps .step_body p {
  color: #545267;
}

/* Flexible layout: Content - Icon Tiles (Figma node 2014:4889) */
section.inner_.content_icon_tiles .icon_tiles_grid {
  justify-content: flex-start;
}
/* Only add the gap above the grid when there's an eyebrow/heading __full-wrap
   preceding it - see the same rule on Content - Columns for why. */
section.inner_.content_icon_tiles .__full-wrap ~ .icon_tiles_grid {
  margin-top: 40px;
}
/* Each tile is its own azuri_col (unlike Content - Feature Cards/Metrics,
   which pre-distribute cards into per-column stacks with their own
   margin-bottom), so once there are more tiles than fit in one row on
   desktop, the wrapped row(s) below need their own vertical gap. row-gap
   only affects spacing between wrapped rows, not the existing azuri_col/
   azuri_inner horizontal gutter, so it doesn't double up column spacing. */
@media only screen and (min-width: 1024px) {
  section.inner_.content_icon_tiles .icon_tiles_grid {
    row-gap: 40px;
  }
  /* 5 Columns doesn't divide evenly into the 12-column azuri_col_N grid, so
     it gets its own fixed 20%-width class instead - same pattern as
     Content - Process Columns' "5 Columns". */
  section.inner_.content_icon_tiles .content_icon_tiles_span_5 {
    width: 20%;
  }
}
section.inner_.content_icon_tiles .icon_tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 100%;
  background-color: var(--medbill-light);
  border: 1px solid #d0cdd9;
  border-radius: 16px;
  padding: 26px;
  color: var(--medbill-dark);
}
/* On a light (lavender) section the card's usual lavender fill would match
   the section background, so it goes white there instead - same pairing
   Content - Cards' .content_card uses. */
section.inner_.content_icon_tiles.bg_light .icon_tile {
  background-color: var(--medbill-white);
}
/* On a dark/primary section the card goes translucent white instead of its
   usual lavender fill, same pairing .checklist_card uses (see Banner -
   Checklist). Heading/body text below flip to their light equivalents to
   match; the icon box's own tint (below) already contrasts fine as-is. */
section.inner_.content_icon_tiles.bg_dark .icon_tile,
section.inner_.content_icon_tiles.bg_primary .icon_tile {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
  color: var(--medbill-white);
}
/* The card's own fill is no longer white, so the icon box needs a tint
   that still contrasts against it rather than the grey .icon_tile_box
   default (which would now blend into the card) - reuses the same tint
   .eyebrow_badge falls back to.
   Each child below also gets its own margin instead of relying on a shared
   flex gap, so the heading-to-text spacing can differ from the icon-to-
   heading and text-to-button spacing. .icon_tile_body > *:last-child then
   zeroes whichever of heading/text/button ends up last, so there's no stray
   margin before the card's own bottom padding when (as is common) there's
   no button. */
section.inner_.content_icon_tiles .icon_tile .icon_tile_box {
  background-color: var(--feature-color-tint, #eef0ff);
  margin-bottom: 16px;
}
/* Typography spec's 0.5em (12px) above only leaves enough room before a
   button when text sits between them (text's 18px margin-bottom already
   covers that pairing); when a tile has a button but no text, the heading
   would otherwise be the one right before the button, so it needs the full
   18px here too - see .btn_secondary below for why that gap can't just be
   declared as a fixed margin-top on the button itself. */
section.inner_.content_icon_tiles .icon_tile h3:has(+ .btn_secondary) {
  margin-bottom: 16px;
}
section.inner_.content_icon_tiles .icon_tile p {
  margin-bottom: 16px;
  color: #545267;
}
section.inner_.content_icon_tiles .icon_tile_body > *:last-child {
  margin-bottom: 0;
}
/* Text colours above assume the card's usual light fill - flip to their
   light-on-dark equivalents to match the translucent dark card above.
   #d0cdd9 is the same muted body-text colour Banner - Image's dark hero
   already uses for secondary text. */
section.inner_.content_icon_tiles.bg_dark .icon_tile h3,
section.inner_.content_icon_tiles.bg_primary .icon_tile h3 {
  color: var(--medbill-white);
}
section.inner_.content_icon_tiles.bg_dark .icon_tile p,
section.inner_.content_icon_tiles.bg_primary .icon_tile p,
section.inner_.content_icon_tiles.bg_dark .icon_tile_body ul,
section.inner_.content_icon_tiles.bg_primary .icon_tile_body ul,
section.inner_.content_icon_tiles.bg_dark .icon_tile_body ol,
section.inner_.content_icon_tiles.bg_primary .icon_tile_body ol {
  color: #d0cdd9;
}
/* Pushes the button to the bottom of the tile regardless of how much
   heading/text content precedes it, so buttons line up across a row of
   equal-height tiles (see .icon_tile's height: 100% above). "auto" here
   consumes whatever free space the row's tallest tile leaves, but resolves
   to 0 - not a floor value - when there's none (e.g. only one tile in the
   row), and flex items don't collapse margins with each other, so the
   minimum 18px gap has to come from whichever element actually precedes the
   button instead: .icon_tile p's margin-bottom above, or h3's :has() bump
   above when there's no text. */
section.inner_.content_icon_tiles .icon_tile .btn_secondary {
  margin-top: auto;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_icon_tiles .icon_tiles_grid .azuri_col:not(:first-child) .icon_tile {
    margin-top: 18px;
  }
}
/* .icon_tile_body always wraps the heading/text/button (see the template),
   but only actually participates in layout when Horizontal Layout is on
   (below) - otherwise it's transparent to flex layout so its children stay
   direct flex items of .icon_tile, identical to the vertical stack before
   this wrapper existed. */
section.inner_.content_icon_tiles .icon_tile_body {
  display: contents;
}

/* Horizontal Layout toggle (register-content-icon-tiles-horizontal-layout.php):
   icon sits beside the heading/text instead of above it, Linktree-style.
   Overrides .icon_tile's align-items: flex-start above to stretch, so
   .icon_tile_body stretches to the tile's full height and the
   .btn_secondary push-to-bottom rule above still lines buttons up across a
   row of equal-height tiles; .icon_tile_box opts back out of that stretch
   so the icon itself stays a fixed size, top-aligned next to the text. */
section.inner_.content_icon_tiles.icon_tiles_horizontal .icon_tile {
  flex-direction: row;
  align-items: stretch;
}
section.inner_.content_icon_tiles.icon_tiles_horizontal .icon_tile .icon_tile_box {
  align-self: flex-start;
  /* Icon sits beside the body here (row direction), not above it, so the
     spacing after it needs to be a right margin instead of the bottom
     margin the default vertical stack uses. */
  margin-bottom: 0;
  margin-right: 18px;
}
section.inner_.content_icon_tiles.icon_tiles_horizontal .icon_tile_body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}
section.inner_.content_icon_tiles.icon_tiles_horizontal .icon_tile .icon_tile_box img {
  width: 120px;
  height: auto;
}
/* Below desktop, tiles already stack full-width (azuri_xs_col_12) with much
   less width to share between icon and text, so Horizontal Layout reverts
   to the same vertical stack as the toggle-off default - reusing that
   default's rules rather than redeclaring them. */
@media only screen and (max-width: 1023px) {
  section.inner_.content_icon_tiles.icon_tiles_horizontal .icon_tile {
    flex-direction: column;
    align-items: flex-start;
  }
  section.inner_.content_icon_tiles.icon_tiles_horizontal .icon_tile_body {
    display: contents;
  }
  section.inner_.content_icon_tiles.icon_tiles_horizontal .icon_tile .icon_tile_box {
    margin-bottom: 18px;
    margin-right: 0;
  }
  section.inner_.content_icon_tiles.icon_tiles_horizontal .icon_tile .icon_tile_box img {
    width: auto;
    height: 32px;
  }
}

/* Flexible layout: Content - Columns. Column width itself is set per-instance,
   per-column inline (see inc/flexible/content_-_columns.php), since each
   column's width is arbitrary rather than one of the fixed N/12 splits the
   azuri_col_N classes cover elsewhere. */
section.inner_.content_columns .content_columns_grid {
  justify-content: flex-start;
}
/* Only add the gap above the grid when there's actually a preceding
   eyebrow/heading __full-wrap to create space from - if that intro block
   is empty and skipped (see the template), .content_columns_grid is the
   first thing in the section, and the section's own top padding already
   handles the spacing there. General sibling combinator (~), not adjacent
   (+): the template emits a per-instance <style> block between the intro
   and the grid whenever there are columns to render, which would break a
   "+" match every time. */
section.inner_.content_columns .__full-wrap ~ .content_columns_grid {
  margin-top: 40px;
}
/* stack_full_width: every column is azuri_col_12 on every breakpoint (see
   the template), so the mobile-only wrap-spacing convention used elsewhere
   doesn't apply here - this needs its own always-on gap between stacked
   columns instead. */
section.inner_.content_columns.columns_stacked .content_columns_grid > .azuri_col:not(:first-child) {
  margin-top: 40px;
}
section.inner_.content_columns .column_image {
  margin-bottom: 18px;
}
section.inner_.content_columns .column_image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
  border: 1px solid var(--medbill-dark);
}
/* Slightly bigger, semi-bold item text for this layout's icon checklist,
   in line with the weight/size other emphasised text uses across the site
   (eyebrow badges, buttons, card headings) - scoped here rather than on the
   shared .checklist_list class, so Banner - Checklist/Banner - Logos keep
   their existing regular-weight text. */
section.inner_.content_columns .checklist_list li span:not(.icon_tile_box) {
  font-size: 18px;
}
/* .azuri_inner vertically centres its content by default (see the base
   rule), which is fine when columns hold similar amounts of content but
   throws shorter columns' content out of line with taller ones (e.g. a
   short heading next to a 4-item icon list) - top-align instead so every
   column starts on the same horizontal plane. */
section.inner_.content_columns .azuri_inner {
  justify-content: flex-start;
}
/* The icon list sits inside .checklist_card (same box Banner - Checklist/
   Banner - Logos use), so .icon_tile_box's colour needs to key off what
   that card itself actually renders as, not bg_color directly - the two
   don't track 1:1 (see .checklist_card rules above: a bg_white section
   gives the card a LAVENDER fill, while a bg_light section gives it a
   WHITE one, the opposite of what you'd guess from the section names). */
section.inner_.bg_dark .checklist_card .icon_tile_box,
section.inner_.bg_primary .checklist_card .icon_tile_box {
  /* Card is translucent, mostly showing the dark/primary section through. */
  background-color: rgba(255, 255, 255, 0.2);
}
section.inner_.bg_white .checklist_card .icon_tile_box {
  /* Card is lavender here, so the icon box goes white to contrast against
     it, rather than .icon_tile_box's own default lavender fill (below),
     which would just match the card. */
  background-color: var(--medbill-white);
}
/* bg_light needs no override: the card is white there, and .icon_tile_box's
   own default lavender fill (below) already contrasts against white fine. */
/* Breathing room when a column has both its own content and an icon list
   below it (either is optional, so this only applies when there's a
   following sibling to separate from). */
section.inner_.content_columns .text-box:not(:last-child) {
  margin-bottom: 18px;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_columns .content_columns_grid .azuri_col:not(:first-child) {
    margin-top: 18px;
  }
}

/* Flexible layout: Content - Metrics (Figma node 2032:5896) */
section.inner_.content_metrics .metrics_grid {
  justify-content: flex-start;
}
/* Only add the gap above the grid when there's an eyebrow/heading __full-wrap
   preceding it - see the same rule on Content - Columns for why. */
section.inner_.content_metrics .__full-wrap ~ .metrics_grid {
  margin-top: 40px;
}
/* Each metric is its own azuri_col, so once there are more metrics than fit
   in one row on desktop (including the "1 Column" case, where every metric
   wraps onto its own row), the wrapped row(s) need their own vertical gap -
   same fix as Content - Icon Tiles/Process Columns. */
@media only screen and (min-width: 1024px) {
  section.inner_.content_metrics .metrics_grid {
    row-gap: 40px;
  }
  /* 5 Columns doesn't divide evenly into the 12-column azuri_col_N grid, so
     it gets its own fixed 20%-width class instead - same pattern as
     Content - Process Columns' "5 Columns". */
  section.inner_.content_metrics .content_metrics_span_5 {
    width: 20%;
  }
}
section.inner_.content_metrics .metric_card {
  display: flex;
  flex-direction: column;
  align-items: center;

  
  height: 100%;
  background-color: var(--medbill-light);
  border: 1px solid #d0cdd9;
  border-radius: 16px;
  padding: 26px;
  text-align: center;
}
/* On a light (lavender) section the card's usual lavender fill would match
   the section background, so it goes white there instead - same pairing
   Content - Cards' .content_card uses. */
section.inner_.content_metrics.bg_light .metric_card {
  background-color: var(--medbill-white);
}
/* On a dark/primary section the card goes translucent white instead of its
   usual lavender fill, same pairing .checklist_card uses (see Banner -
   Checklist). Heading/body/value text below flip to their light
   equivalents to match. */
section.inner_.content_metrics.bg_dark .metric_card,
section.inner_.content_metrics.bg_primary .metric_card {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}
section.inner_.content_metrics .metric_card h3 {
  font-size: 24px;
  color: var(--medbill-dark);
}
section.inner_.content_metrics .metric_card p {
  color: #545267;
}
/* Text colours above assume the card's usual light fill - flip to their
   light-on-dark equivalents to match the translucent dark card above.
   #d0cdd9 is the same muted body-text colour Banner - Image's dark hero
   already uses for secondary text. */
section.inner_.content_metrics.bg_dark .metric_card h3,
section.inner_.content_metrics.bg_primary .metric_card h3 {
  color: var(--medbill-white);
}
section.inner_.content_metrics.bg_dark .metric_card p,
section.inner_.content_metrics.bg_primary .metric_card p,
section.inner_.content_metrics.bg_dark .metric_card .h3 {
  color: #d0cdd9;
}
section.inner_.content_metrics .metric_stat {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin-bottom: 1em;
  gap: 6px;
}
section.inner_.content_metrics .metric_value {
  color: var(--feature-color, var(--medbill-primary));
  font-size: 36px;
  font-weight: bold;
  line-height: 1.2;
}
/* The brand-colour value above reads fine on a light card, but on the
   translucent dark card it competes for attention with the rest of the
   dark-mode palette - goes white to match the screenshot reference (bold,
   full-strength, same as the heading above). */
section.inner_.content_metrics.bg_dark .metric_value,
section.inner_.content_metrics.bg_primary .metric_value {
  color: var(--medbill-white);
}
section.inner_.content_metrics .metric_unit {
  color: #545267;
  padding-bottom: 7px;
}
section.inner_.content_metrics.bg_dark .metric_unit,
section.inner_.content_metrics.bg_primary .metric_unit {
  color: #d0cdd9;
}
section.inner_.content_metrics .closing_text {
  margin-top: 18px;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_metrics .metrics_grid .azuri_col:not(:first-child) .metric_card {
    margin-top: 18px;
  }
}

/* Flexible layout: Content - Process Columns (Figma node 2005:5424) */
section.inner_.content_process_columns .process_columns_grid {
  justify-content: flex-start;
}
/* Only add the gap above the grid when there's an eyebrow/heading __full-wrap
   preceding it - see the same rule on Content - Columns for why. */
section.inner_.content_process_columns .__full-wrap ~ .process_columns_grid {
  margin-top: 40px;
}
/* 5 Columns doesn't divide evenly into the 12-column azuri_col_N grid, so it
   gets its own fixed 20%-width class instead (desktop only; mobile still
   stacks via azuri_xs_col_12 like every other column count). */
@media only screen and (min-width: 1024px) {
  section.inner_.content_process_columns .process_columns_grid {
    row-gap: 40px;
  }
  section.inner_.content_process_columns .process_column_span_5 {
    width: 20%;
  }
}
section.inner_.content_process_columns .process_column {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
  border-left: 1px solid #d0cdd9;
  padding-left: 26px;
}
section.inner_.content_process_columns .process_column_top {
  display: flex;
  align-items: center;
  gap: 12px;
}
section.inner_.content_process_columns .process_number {
  color: var(--feature-color, #acb6ff);
  font-size: 48px;
  font-weight: bold;
  line-height: 1.2;
}
/* Plain eyebrow text next to the step number, not the usual pill badge -
   same type treatment as .eyebrow_badge (bold, small, letter-spaced,
   uppercase) minus the background/border/border-radius, matching the same
   "pill-less" pattern .rank-math-breadcrumb p already uses elsewhere. */
section.inner_.content_process_columns .step_eyebrow {
  font-weight: bold;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 1.92px;
  text-transform: uppercase;
  color: var(--feature-color, var(--medbill-primary));
}
section.inner_.content_process_columns .process_column_body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
section.inner_.content_process_columns .process_column_body h3 {
  font-size: 24px;
  margin-bottom: 0.5em;
}
/* section.inner_.content_process_columns .process_column_body p {
  color: #545267;
} */
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_process_columns .process_column {
    border-left: 0;
    padding-left: 0;
  }
  section.inner_.content_process_columns .process_columns_grid .azuri_col:not(:first-child) .process_column {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #d0cdd9;
  }
}

/* Flexible layout: Content - Accordion (Figma node 2032:5969) */
.faq_list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
section.inner_.content_accordion .faq_list {
  max-width: 960px;
  width: 100%;
  margin-top: 40px;
  margin-left: auto;
  margin-right: auto;
}
.faq_item {
  background-color: var(--medbill-white);
  border: 1px solid #d0cdd9;
  border-radius: 16px;
}
.faq_question_heading {
  margin: 0;
}
.faq_question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  padding: 22px;
  background: none;
  border: 0;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}
/* GeneratePress applies a dark skin to all button elements on :hover/:focus
   with higher specificity than a plain class selector; reset it explicitly
   so the accordion trigger doesn't flash dark on click/keyboard focus. */
.faq_question:hover,
.faq_question:focus {
  background: none;
  color: inherit;
}
.faq_question:hover span:first-child,
.faq_question:focus span:first-child {
  color: var(--medbill-primary);
}
.faq_question span:first-child {
  font-size: 18px;
  font-weight: bold;
  color: var(--medbill-dark);
}
.faq_icon {
  position: relative;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
}
.faq_icon:before,
.faq_icon:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background-color: var(--medbill-primary);
  transform: translate(-50%, -50%);
}
.faq_icon:before {
  width: 14px;
  height: 2px;
}
.faq_icon:after {
  width: 2px;
  height: 14px;
  transition: transform 0.2s ease;
}
.faq_item.is-open .faq_icon:after {
  transform: translate(-50%, -50%) scaleY(0);
}
.faq_answer {
  padding: 0 22px 22px;
  color: #545267;
}

/* Flexible layout: Content - Accordions with Tabs (replicated from
   solutions-template.php's "accordions_with_tabs_section" row layout) */
section.inner_.content_accordions_tabs .tabs_wrap {
  align-items: flex-start;
}
/* Only add the gap above the tabs when there's an eyebrow/heading __full-wrap
   preceding it - see the same rule on Content - Columns for why. */
section.inner_.content_accordions_tabs .__full-wrap ~ .tabs_wrap {
  margin-top: 40px;
}
section.inner_.content_accordions_tabs .tabs_nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
section.inner_.content_accordions_tabs .tabs_nav_link {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 14px 18px;
  background: none;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  font-family: inherit;
  font-weight: 600;
  font-size: 18px;
  text-align: left;
  color: var(--medbill-dark);
  transition: background-color 0.2s ease, color 0.2s ease;
}
section.inner_.content_accordions_tabs .tabs_nav_link:hover,
section.inner_.content_accordions_tabs .tabs_nav_link:focus {
  background-color: var(--medbill-light);
  color: var(--medbill-dark);
}
section.inner_.content_accordions_tabs .tabs_nav_link.is-active {
  background-color: var(--medbill-light);
  color: var(--medbill-primary);
}
section.inner_.content_accordions_tabs .tabs_nav_icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}
section.inner_.content_accordions_tabs .tabs_panels_wrap {
  border-left: 1px solid #d0cdd9;
  padding-left: 40px;
}
section.inner_.content_accordions_tabs .tabs_panel p {
  color: #545267;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_accordions_tabs .tabs_panels_wrap {
    border-left: 0;
    padding-left: 0;
    margin-top: 30px;
  }
}

/* Flexible layout: Content - Calculator (converted from the existing
   hardcoded "calculator_section", GP Element "Calculator Section") */
section.inner_.content_calculator .azuri_col_8 {
  padding-left: 40px;
}
section.inner_.content_calculator .calculator_card {
  position: relative;
  margin: 0;
  padding: 60px 40px;
  border-radius: 15px;
  background-color: var(--medbill-dark);
  background-repeat: no-repeat;
  background-position: top right;
  background-size: cover;
}
@media only screen and (min-width: 781px) {
  section.inner_.content_calculator .calculator_card {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1280' height='585' viewBox='0 0 1280 585'%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M0 0h1280v583H0z'/%3E%3C/clipPath%3E%3CclipPath id='c'%3E%3Cpath fill='%23fff' d='M0 0h1280v585H0z'/%3E%3C/clipPath%3E%3CradialGradient id='b' cx='.5' cy='.5' r='.5' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237386ff' stop-opacity='.435'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='d' x1='.795' y1='-1.058' x2='.599' y2='.968' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237385ff'/%3E%3Cstop offset='1' stop-color='%237386ff' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform='translate(0 1)' clip-path='url(%23a)'%3E%3Cellipse cx='843' cy='422' rx='843' ry='422' transform='translate(248 -485)' opacity='.704' fill='url(%23b)'/%3E%3C/g%3E%3Cg clip-path='url(%23c)'%3E%3Cpath d='M645.544 216.463C704.433 73.161 755.983.581 860.28.661c73.75.057 137.711 66.347 137.809 187.787l.381 474.365-130.63-.1 3.774-472.271s1.232-71.8-27.421-71.02c-18.517.5-28.029 29.275-57.477 97.15L683.662 448.494C625.84 590.846 573.221 662.486 469.968 662.406c-73.738-.057-124.507-57.456-124.6-177.216l2.346-169.73s3.9-65.557-17.219-66.36c-22.462-.875-32.761 27.3-58.865 97.76L140.648 662.153.532 662.046l134.1-314.08c58.878-143.3 110.44-215.871 214.737-215.791 73.738.057 125.424 67.042 125.521 187.765l-1.608 154.671s-2.339 70.961 15.564 70.87c15.421-.07 22.671-15.442 43.705-63.529Z' transform='rotate(-1 -4542.932 -20005.259)' opacity='.15' fill='url(%23d)'/%3E%3C/g%3E%3C/svg%3E");
  }
}
@media only screen and (max-width: 780.5px) {
  section.inner_.content_calculator .calculator_card {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='821' viewBox='0 0 360 821'%3E%3Cdefs%3E%3CclipPath id='a'%3E%3Cpath fill='%23fff' d='M1860-176h360v821h-360z'/%3E%3C/clipPath%3E%3CclipPath id='c'%3E%3Cpath fill='%23fff' d='M1240 210h360v788h-360z'/%3E%3C/clipPath%3E%3CradialGradient id='b' cx='.5' cy='.5' r='.5' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237386ff' stop-opacity='.435'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='d' x1='.795' y1='-1.058' x2='.599' y2='.968' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237385ff'/%3E%3Cstop offset='1' stop-color='%237386ff' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform='translate(-1860 176)' clip-path='url(%23a)'%3E%3Cellipse cx='758' cy='545' rx='758' ry='545' transform='translate(1427 -681)' opacity='.704' fill='url(%23b)'/%3E%3C/g%3E%3Cg transform='translate(-1240 -210)' clip-path='url(%23c)'%3E%3Cpath d='M371.473 130.031C405.436 43.723 435.142 0 495.175 0c42.45 0 79.236 39.883 79.236 113v285.61h-75.19l2.391-284.352s.743-43.228-15.751-42.747c-10.659.311-16.147 17.639-33.129 58.52l-59.425 139.686c-33.348 85.736-63.669 128.893-123.1 128.893-42.443 0-71.64-34.536-71.64-106.642L200 189.774s2.277-39.473-9.881-39.947c-12.929-.516-18.87 16.451-33.928 58.887L80.65 398.61H0l77.333-189.167C111.289 123.135 141 79.419 201.035 79.419c42.443 0 72.163 40.307 72.163 112.994l-1 93.126s-1.379 42.726 8.926 42.663c8.876-.049 13.056-9.308 25.186-38.27Z' transform='rotate(-1 11500.523 -60574.593)' opacity='.15' fill='url(%23d)'/%3E%3C/g%3E%3C/svg%3E");
  }
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height {
  padding: 0;
}
section.inner_.content_calculator .text-box h2 {
  color: var(--medbill-white);
  font-size: 32px;
  line-height: 1.3;
}
section.inner_.content_calculator .text-box,
section.inner_.content_calculator .text-box p {
  color: var(--medbill-white);
}
section.inner_.content_calculator .text-box .bottom_txt {
  font-weight: 500;
  font-size: 14px;
  line-height: 25px;
  text-align: left;
  color: #acb6ff;
  margin-top: 0;
  display: inline-block;
  border-top: 1px solid #7386ff47;
  padding-top: 20px;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height .azuri_inner {
  padding: 0 15px;
  margin-bottom: 30px;
  align-items: start;
}
section.inner_.content_calculator select {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="14.202" height="14.202" viewBox="0 0 14.202 14.202"><path id="Icon_ionic-md-arrow-dropdown-circle" data-name="Icon ionic-md-arrow-dropdown-circle" d="M10.476,3.375a7.1,7.1,0,1,0,7.1,7.1A7.1,7.1,0,0,0,10.476,3.375Zm0,9.286L7.2,9.383h6.555Z" transform="translate(-3.375 -3.375)" fill="%237386ff"/></svg>') !important;
  background-repeat: no-repeat !important;
  background-position: center right 18px !important;
}
section.inner_.content_calculator select,
section.inner_.content_calculator input {
  border-radius: 5px;
  background: rgba(115, 134, 255, 0.1);
  color: var(--medbill-white);
  border: 0;
  font-size: 14px;
  padding: 10px 18px;
  appearance: none;
  outline: none;
  width: 100%;
}
section.inner_.content_calculator select option {
  background: var(--medbill-dark);
}
section.inner_.content_calculator input::placeholder {
  color: var(--medbill-white);
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row3 .azuri_inner {
  margin-bottom: 0;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row3 .button {
  text-align: right;
  width: 100%;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row3 .button #getstarted {
  border-radius: 5px;
  background: #d6dcff;
  font-weight: bold;
  font-size: 16px;
  text-align: left;
  color: #4959c1;
  padding: 12px 20px;
  line-height: 16px;
  display: inline-block;
  padding-bottom: 8px;
  cursor: pointer;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row3 .button #getstarted:hover {
  background: #4959c1;
  color: #d6dcff;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 {
  border-radius: 5px;
  background-color: #7386ff14;
  padding: 22px;
  margin: 0 15px;
  margin-top: 40px;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 .azuri_inner {
  margin: 0;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 .text-box {
  border-radius: 10px;
  background: #7386ff14;
  padding: 20px;
  width: 100%;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 .text-box b {
  font-weight: 600;
  font-size: 19px;
  line-height: 32px;
  text-align: center;
  color: var(--medbill-primary);
  display: block;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 .text-box div#savings,
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 .text-box div#income {
  font-weight: bold;
  font-size: 47px;
  line-height: 51px;
  position: relative;
  text-align: center;
  margin-top: 10px;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 .text-box.text-box-right {
  background: transparent;
}
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 .text-box div#savings b,
section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 .text-box div#income b {
  display: inline;
  color: var(--medbill-white);
  position: relative;
  top: -17px;
  margin-right: 3px;
  font-size: 26px;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_calculator .calculator_card {
    padding: 20px 20px;
  }
  section.inner_.content_calculator .azuri_col_8 {
    padding-left: 0;
    padding-top: 30px;
  }
  section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 {
    padding: 12px;
    margin: 0;
    margin-top: 10px;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1199px) {
  section.inner_.content_calculator .calculator_card {
    padding: 20px 10px;
  }
  section.inner_.content_calculator .azuri_col_8 {
    padding-left: 0;
  }
  section.inner_.content_calculator .calculator_card .__full-wrap.equal-height.row4 {
    padding: 14px 0;
  }
}

/* Flexible layout: Content - Text and Listings (replicated from rows 3 and 4
   of the existing "grid_section" row layout, Who We Service page) */
section.inner_.content_text_listings {
  position: relative;
  background-color: var(--medbill-dark);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1920' height='861' viewBox='0 0 1920 861'%3E%3Cdefs%3E%3CradialGradient id='a' cx='.5' cy='.5' r='.5' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%237386ff' stop-opacity='.435'/%3E%3Cstop offset='1' stop-color='%23141129' stop-opacity='0'/%3E%3C/radialGradient%3E%3CclipPath id='b'%3E%3Cpath fill='%23141129' d='M0 2932h1920v861H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cpath fill='%23141129' d='M0 0h1920v861H0z'/%3E%3Cg fill='url(%23a)' clip-path='url(%23b)' transform='translate(0 -2932)'%3E%3Cellipse cx='1330.5' cy='811' rx='1330.5' ry='811' transform='translate(-1165 3090)' opacity='.704'/%3E%3Cellipse cx='862' cy='600' rx='862' ry='600' transform='translate(830 2272)' opacity='.704'/%3E%3C/g%3E%3C/svg%3E");
}
section.inner_.content_text_listings .row4 {
  margin-top: 40px;
}
/* Each column is its own azuri_col, so once there are more columns than fit
   in one row on desktop (including the "1 Column" case), the wrapped
   row(s) need their own vertical gap - same fix as Content - Icon Tiles/
   Metrics/Process Columns. */
@media only screen and (min-width: 1024px) {
  section.inner_.content_text_listings .row4 {
    row-gap: 40px;
  }
  /* 5 Columns doesn't divide evenly into the 12-column azuri_col_N grid, so
     it gets its own fixed 20%-width class instead - same pattern as
     Content - Process Columns' "5 Columns". */
  section.inner_.content_text_listings .content_text_listings_span_5 {
    width: 20%;
  }
}
section.inner_.content_text_listings .row3 .text-box h2 {
  margin: 0;
  font-size: 46px;
  text-align: left;
  color: var(--medbill-white);
}
section.inner_.content_text_listings .row3 .text-box h2 b {
  background: -webkit-linear-gradient(45deg, #7386ff 50%, #4959c1 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
section.inner_.content_text_listings .row3 .text-box p {
  margin: 0;
  text-align: left;
  border-left: 5px solid #7386ff;
  padding-left: 20px;
  max-width: 100%;
  color: var(--medbill-white);
}
section.inner_.content_text_listings .row4 .text-box {
  border-right: 1px solid #f3f2f814;
}
section.inner_.content_text_listings .row4 .azuri_col:last-child .text-box {
  border: 0;
}
section.inner_.content_text_listings ul.ul_li {
  margin: 0;
  list-style: none;
}
section.inner_.content_text_listings ul.ul_li li {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="5.777" height="11.555" viewBox="0 0 5.777 11.555"><path id="Icon_ionic-md-arrow-dropright" data-name="Icon ionic-md-arrow-dropright" d="M13.5,9l5.777,5.777L13.5,20.555Z" transform="translate(-13.5 -9)" fill="%23acb6ff"/></svg>');
  background-repeat: no-repeat;
  background-position: 0 7px;
  padding-left: 20px;
  color: var(--medbill-white);
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_text_listings .row3 .text-box h2 {
    font-size: 30px;
    margin-bottom: 30px;
  }
  section.inner_.content_text_listings .row3 .text-box h2 br {
    display: none !important;
  }
  section.inner_.content_text_listings .row4 {
    margin-top: 30px;
  }
  section.inner_.content_text_listings .row4 .text-box {
    border-right: 0;
    border-bottom: 1px solid #f3f2f8;
    margin-bottom: 30px;
    padding-bottom: 30px;
  }
  section.inner_.content_text_listings .row4 .azuri_col:last-child .text-box {
    border: 0;
    margin: 0;
    padding: 0;
  }
}

/* Flexible layout: CTA - Form (Figma node 2032:6928) */
section.inner_.cta_form .cta_form_card {
  background-color: var(--medbill-dark);
  background-image: linear-gradient(
    135deg,
    rgba(115, 134, 255, 0.16),
    rgba(255, 255, 255, 0) 60%
  );
  border-radius: 26px;
  padding: 64px;
  color: var(--medbill-white);
}
/* section.inner_.cta_form .text-box p {
  margin-bottom: 0;
} */
/* Form panel reuses .checklist_card's translucent-dark look, but must stay
   dark regardless of the outer section's bg_color (unlike a normal
   .checklist_card, whose colour follows the section it's actually inside).
   background-image: none for the same reason - otherwise the section's own
   bg_color would still pick a light or dark checklist_card watermark to
   match itself, layering the wrong-toned one over this always-dark panel. */
section.inner_.cta_form .checklist_card.cta_form_panel {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
  background-image: none;
}
section.inner_.cta_form .cta_form_panel .gform_wrapper {
  width: 100%;
}
/* The sitewide gform_button has a fixed 196px width, too narrow for this
   form's longer custom submit label; Figma's design also wants it full-width. */
section.inner_.cta_form .cta_form_panel button.button.gform_button {
  width: 100%;
  text-align: center;
}
section.inner_.cta_form .cta_form_panel .gform-body.gform_body label.gfield_label.gform-field-label {
  color: var(--medbill-white);
}
section.inner_.cta_form .cta_form_panel .gform-body.gform_body input,
section.inner_.cta_form .cta_form_panel .gform-body.gform_body select,
section.inner_.cta_form .cta_form_panel .gform-body.gform_body textarea {
  background-color: var(--medbill-white);
  border-color: #d0cdd9;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.cta_form .cta_form_card {
    padding: 30px;
  }
  .cta_form_panel {
    margin-top: 24px;
  }
}

/* Flexible layout: Content - Testimonials (Figma node 2005:5355) */
/* Row gap only, never a column gap. Each testimonial's width is emitted as a
   plain percentage by the layout (see the scoped <style> block in
   inc/flexible/content_-_testimonials.php), and those percentages are meant
   to fill the row - three at 33.33% come to 99.99%. A column gap is added on
   top of that, so 18px between three cards overflowed the row by 36px and
   pushed the third card onto a line of its own. The horizontal gutter comes
   from .azuri_inner's own 20px side padding instead, exactly as it does in
   every other layout in this theme; the row gap is kept so testimonials that
   genuinely do wrap aren't flush against the row above. */
section.inner_.content_testimonials .testimonials_grid {
  gap: 18px 0;
  justify-content: flex-start;
}
section.inner_.content_testimonials .testimonial_card {
  background-color: var(--medbill-light);
  border-radius: 26px;
  padding: 40px 32px;
}
/* Section Alignment moves the cards as well as the heading block, which the
   shared .align_* rules further up already handle on their own. Without
   this the cards would stay hard left under a centred heading, which reads
   as a mistake rather than a choice. Only matters when the cards don't fill
   the row - three at 33.33% look identical whichever way this is set. The
   base rule's justify-content: flex-start already covers Left. */
section.inner_.content_testimonials.align_center .testimonials_grid {
  justify-content: center;
}
section.inner_.content_testimonials.align_right .testimonials_grid {
  justify-content: flex-end;
}
section.inner_.content_testimonials.align_center .testimonial_card {
  text-align: center;
}
section.inner_.content_testimonials.align_right .testimonial_card {
  text-align: right;
}
/* On a light (lavender) section the card's usual lavender fill would match
   the section background, so it goes white there instead. */
section.inner_.content_testimonials.bg_light .testimonial_card {
  background-color: var(--medbill-white);
}
section.inner_.content_testimonials .testimonial_quote {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: "DM Sans", sans-serif;
  font-weight: bold;
  font-style: normal;
  font-size: 24px;
  line-height: 1.2;
  color: var(--medbill-dark);
}
section.inner_.content_testimonials .testimonial_attribution {
  margin-top: 32px;
  color: #545267;
}

/* Flexible layout: CTA - Product (Figma node 2005:5354) */
section.inner_.cta_product .product_cta_card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 32px;
  background-color: var(--medbill-light);
  border-radius: 16px;
  padding: 32px;
}
/* On a light (lavender) section the card's usual lavender fill would match
   the section background, so it goes white there instead. */
section.inner_.cta_product.bg_light .product_cta_card {
  background-color: var(--medbill-white);
}
/* On a dark/primary section the card goes translucent white instead of its
   usual lavender fill, same pairing .checklist_card uses (see Banner -
   Checklist). Heading/body text and the secondary button below flip to
   their light equivalents to match; .product_cta_logo (below) stays white
   regardless, since uploaded logos generally assume a white backdrop. */
section.inner_.cta_product.bg_dark .product_cta_card,
section.inner_.cta_product.bg_primary .product_cta_card {
  background-color: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
}
/* Logo sits above the button row in its own column on the right of the
   card (see .product_cta_right below), rather than beside the body text -
   flex-end right-aligns both against the card's right edge, matching where
   they used to sit as the row's trailing flex item. Left-aligned instead on
   mobile, alongside the same media query's product_cta_card padding
   override, where it stacks below the body text and there's no "right" for
   it to line up with any more. */
section.inner_.cta_product .product_cta_right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 24px;
}
section.inner_.cta_product .product_cta_logo {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 218px;
  background-color: var(--medbill-white);
  border: 1px solid #d0cdd9;
  border-radius: 16px;
  padding: 24px 22px;
}
section.inner_.cta_product .product_cta_logo img {
  width: 100%;
  height: auto;
}
/* Two copies of the same logo render (see the template) since the desktop
   and mobile positions aren't a simple resize/reposition of each other -
   on desktop it's the top-right column's own item, on mobile it moves
   inside the text column, between the eyebrow badge and the heading/body
   copy. Only one is ever shown: the mobile copy stays hidden until the
   same breakpoint the rest of this layout's mobile overrides use. */
section.inner_.cta_product .product_cta_logo_mobile {
  display: none;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.cta_product .product_cta_logo_desktop {
    display: none;
  }
  section.inner_.cta_product .product_cta_logo_mobile {
    display: flex;
    margin-bottom: 18px;
  }
}
section.inner_.cta_product .product_cta_text {
  max-width: 700px;
}
/* .product_cta_card is always light (lavender, or white on bg_light)
   regardless of the section's own bg_color - see the same reasoning on
   .content_card above. body_text (manual or pulled from a linked post's
   title) can contain any heading level. */
section.inner_.cta_product .product_cta_text h1,
section.inner_.cta_product .product_cta_text h2,
section.inner_.cta_product .product_cta_text h3,
section.inner_.cta_product .product_cta_text h4,
section.inner_.cta_product .product_cta_text h5,
section.inner_.cta_product .product_cta_text h6 {
  color: var(--medbill-dark);
}
section.inner_.cta_product .product_cta_text .eyebrow_badge {
  margin-bottom: 16px;
}
section.inner_.cta_product .product_cta_text p,
section.inner_.cta_product .product_cta_text li {
  margin: 0;
  font-size: 16px;
  color: #545267;
}
/* Text colours above assume the card's usual light fill - flip to their
   light-on-dark equivalents to match the translucent dark card above.
   #d0cdd9 is the same muted body-text colour Banner - Image's dark hero
   already uses for secondary text. */
section.inner_.cta_product.bg_dark .product_cta_text h1,
section.inner_.cta_product.bg_dark .product_cta_text h2,
section.inner_.cta_product.bg_dark .product_cta_text h3,
section.inner_.cta_product.bg_dark .product_cta_text h4,
section.inner_.cta_product.bg_dark .product_cta_text h5,
section.inner_.cta_product.bg_dark .product_cta_text h6,
section.inner_.cta_product.bg_primary .product_cta_text h1,
section.inner_.cta_product.bg_primary .product_cta_text h2,
section.inner_.cta_product.bg_primary .product_cta_text h3,
section.inner_.cta_product.bg_primary .product_cta_text h4,
section.inner_.cta_product.bg_primary .product_cta_text h5,
section.inner_.cta_product.bg_primary .product_cta_text h6 {
  color: var(--medbill-white);
}
section.inner_.cta_product.bg_dark .product_cta_text p,
section.inner_.cta_product.bg_dark .product_cta_text li,
section.inner_.cta_product.bg_primary .product_cta_text p,
section.inner_.cta_product.bg_primary .product_cta_text li {
  color: #d0cdd9;
}
/* .btn.first has no explicit height anywhere else on the site - it just
   falls out of its own font-size/line-height/padding. Pinning both buttons
   here to the same explicit height (with vertical padding zeroed out and
   text centred via flex, so the box-model maths can't drift them apart
   again) keeps this pair the same size regardless, since the pill below
   would otherwise render visibly shorter than .btn.first's ~45px. Scoped
   to this layout only - .btn.first elsewhere is unaffected.
   width/margin-bottom explicitly reset: the sitewide mobile rule below
   1024px (.button a.btn.first, further down this file) stretches .btn.first
   to the full row width and stacks a gap underneath it, which is meant for
   layouts where it's the only button on its own line - here it always sits
   next to the secondary pill in .button-flex-wrap's row, so that stretch
   just pushed the pill onto its own line/oversized the primary button. This
   selector already outranks that rule on every other property it sets, but
   width/margin-bottom aren't among them, so they need their own explicit
   override back to their natural values. */
section.inner_.cta_product a.btn.first {
  display: inline-flex;
  align-items: center;
  width: auto;
  height: 44px;
  margin-bottom: 0;
  padding: 0 35px;
  font-size: 16px;
}
/* Styled to match Content - Feature Cards/Content - Icon Tiles' .btn_secondary
   pill button instead of the plain text-with-arrow look .btn_simple.second
   has everywhere else - sitting in a fixed-height row right next to
   .btn.first, the plain link's baseline-only footprint read as an
   afterthought beside a solid pill button.
   Padding stays fixed at every state, unlike the base .btn_simple.second
   hover (which grows padding-right): .product_cta_card is
   justify-content: space-between, so growing this button's own box on
   hover shifted its left edge - and .btn.first beside it - left as the row
   reflowed. Sliding background-position instead gives the same "arrow
   nudges right" feedback with no layout shift.
   margin-left is repeated here (not just inherited from the base
   a.btn_simple.second rule) because the sitewide mobile override below
   1024px zeroes it out again - for layouts that stack the buttons on
   separate lines there that's correct, but the two buttons stay side by
   side here even on mobile, so the gap needs to survive that override. */
section.inner_.cta_product a.btn_simple.second {
  display: inline-flex;
  align-items: center;
  height: 44px;
  margin-left: 0;
  padding: 0 30px 0 12px;
  border-radius: 8px;
  background-color: var(--medbill-white);
  color: var(--medbill-dark);
  font-weight: bold;
  font-size: 16px;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.279" height="11.057" viewBox="0 0 6.279 11.057"><g id="Icon_feather-arrow-down" data-name="Icon feather-arrow-down" transform="translate(-16.939 17.496) rotate(-90)"><path id="Path_394" data-name="Path 394" d="M16.436,18l-4.468,4.468L7.5,18" transform="translate(0 0)" fill="none" stroke="%23141129" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
  background-repeat: no-repeat;
  background-position: center right 12px;
  transition: background-color 0.5s, background-position 0.5s;
}
section.inner_.cta_product a.btn_simple.second:hover {
  background-color: #e6e4eb;
  background-position: center right 7px;
  transition: background-color 0.5s, background-position 0.5s;
}
/* .product_cta_card goes white instead of its usual lavender fill on
   bg_light (see above), so the pill flips to lavender there too - same
   pairing .btn_secondary uses on Content - Feature Cards/Icon Tiles. */
section.inner_.cta_product.bg_light a.btn_simple.second {
  background-color: var(--medbill-light);
}
section.inner_.cta_product.bg_light a.btn_simple.second:hover {
  background-color: #e6e4eb;
}
/* .product_cta_card goes translucent white on bg_dark/bg_primary (see
   above), so the pill flips to the same translucent-white treatment
   .icon_tile_box uses there instead of staying solid white, with a white
   arrow rather than the dark one above. */
section.inner_.cta_product.bg_dark a.btn_simple.second,
section.inner_.cta_product.bg_primary a.btn_simple.second {
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--medbill-white);
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.279" height="11.057" viewBox="0 0 6.279 11.057"><g id="Icon_feather-arrow-down" data-name="Icon feather-arrow-down" transform="translate(-16.939 17.496) rotate(-90)"><path id="Path_394" data-name="Path 394" d="M16.436,18l-4.468,4.468L7.5,18" transform="translate(0 0)" fill="none" stroke="%23fff" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
}
section.inner_.cta_product.bg_dark a.btn_simple.second:hover,
section.inner_.cta_product.bg_primary a.btn_simple.second:hover {
  background-color: rgba(255, 255, 255, 0.2);
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.cta_product .product_cta_card {
    padding: 30px;
  }
  section.inner_.cta_product .product_cta_right {
    align-items: flex-start;
  }
}

/* Flexible layout: Content - Testimonial with Metric (Figma node 2005:5356) */
section.inner_.content_testimonial_metric .testimonial_metric_stat {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  height: 100%;
  background-color: var(--feature-color-tint, #eef0ff);
  border: 1px solid #d0cdd9;
  border-radius: 16px;
  padding: 26px;
}
section.inner_.content_testimonial_metric .testimonial_metric_stat .metric_value {
  color: var(--feature-color, var(--medbill-primary));
  font-size: 48px;
  font-weight: bold;
  line-height: 1.2;
}
section.inner_.content_testimonial_metric .testimonial_metric_stat p {
  color: #545267;
}
section.inner_.content_testimonial_metric .testimonial_metric_card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 32px;
  height: 100%;
  background-color: var(--medbill-light);
  border-radius: 16px;
  padding: 40px 32px;
}
/* On a light (lavender) section the card's usual lavender fill would match
   the section background, so it goes white there instead. */
section.inner_.content_testimonial_metric.bg_light .testimonial_metric_card {
  background-color: var(--medbill-white);
}
section.inner_.content_testimonial_metric .testimonial_metric_quote {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: "DM Sans", sans-serif;
  font-weight: bold;
  font-style: normal;
  font-size: 24px;
  line-height: 1.2;
  color: var(--medbill-dark);
}
section.inner_.content_testimonial_metric .testimonial_metric_quote p {
  color: var(--medbill-dark);
  font-style: italic;
}
section.inner_.content_testimonial_metric .testimonial_metric_attribution {
  margin: 0;
  font-size: 20px;
  color: var(--medbill-dark);
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_testimonial_metric .testimonial_metric_grid .azuri_col:not(:first-child) .testimonial_metric_card {
    margin-top: 18px;
  }
}

/* Flexible layout: Content - Trusted Logos (converted from the existing
   hardcoded "trusted logos" strip, e.g. lp-page/medbill-lp.php) */
section.inner_.content_trusted_logos .text-box h2 {
  /* Typography spec: h2 is 32px (already matched) with 1.3 line-height/
     0.5em margin-bottom - line-height/margin-bottom were much looser
     (58px/30px) than that. line-height is unitless so the media queries
     below no longer need their own copy of it. */
  font-size: 32px;
  line-height: 1.3;
  margin-bottom: 0.5em;
}
section.inner_.content_trusted_logos .logo_grid {
  justify-content: space-between;
}
section.inner_.content_trusted_logos .logo_grid img {
  height: 50px;
  width: 160px;
  object-fit: contain;
  object-position: center;
}
@media only screen and (min-width: 240px) and (max-width: 380px) {
  section.inner_.content_trusted_logos .text-box h2 {
    font-size: 22px !important;
  }
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_trusted_logos .text-box h2 {
    font-size: 25px;
    margin-bottom: 40px;
  }
  section.inner_.content_trusted_logos .logo_grid img {
    height: 33px;
    width: 110px;
    margin: 0 auto;
    display: block;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1023px) {
  section.inner_.content_trusted_logos .logo_grid img {
    height: 35px;
    width: 120px;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1199px) {
  section.inner_.content_trusted_logos .logo_grid img {
    height: 40px;
    width: 130px;
  }
}
/* Custom (non-global) logos: azuri_col grid so the editor can pick how many
   columns show on desktop (desktop_columns), always collapsing to 2 columns
   (azuri_xs_col_6) on smaller screens regardless of that choice. */
section.inner_.content_trusted_logos .logo_columns_grid {
  row-gap: 40px;
}
/* Column counts that don't divide evenly into the 12-column azuri grid
   (5, 7, 8, 9, 10) get their own percentage widths, since there's no whole
   azuri_col_N to use - same approach as Content - Cards' and Content - Icon
   Tiles' 5-column options. Desktop only: below 1024px azuri_xs_col_6 takes
   over and the grid collapses to 2 columns like every other count. */
@media only screen and (min-width: 1024px) {
  section.inner_.content_trusted_logos .logo_columns_span_5 {
    width: 20%;
  }
  section.inner_.content_trusted_logos .logo_columns_span_7 {
    width: 14.2857%;
  }
  section.inner_.content_trusted_logos .logo_columns_span_8 {
    width: 12.5%;
  }
  section.inner_.content_trusted_logos .logo_columns_span_9 {
    width: 11.1111%;
  }
  section.inner_.content_trusted_logos .logo_columns_span_10 {
    width: 10%;
  }
}
section.inner_.content_trusted_logos .logo_column_item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  /* On top of the grid's own 20px-a-side gutter from .azuri_inner. Logos are
     wordmarks of very different widths that each fill their column, so the
     gutter alone can leave neighbours looking crowded - this pads every logo
     equally instead. It sits inside the column, so it doesn't affect the
     percentage widths the higher column counts rely on; the logo scales
     down to the space that's left rather than the column changing size. */
  padding-left: 10px;
  padding-right: 10px;
}
/* Featured logo (featured_logo / featured_logo_text): one logo singled out
   from the strip - an accreditation or partnership mark - presented as a pill
   so it reads as a deliberate callout rather than a stray logo that missed
   the grid. Declared after every .logo_grid img rule above, including the
   breakpoint ones, because the image sizing here has to beat their fixed
   160x50 (and smaller) boxes at the same specificity: a partnership mark has
   its own proportions and shouldn't be squeezed into the shared logo size. */
section.inner_.content_trusted_logos .trusted_logo_feature {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 12px 24px;
  border: 1px solid #d0cdd9;
  border-radius: 999px;
  background-color: var(--medbill-light);
}
/* On a light (lavender) section the pill's usual lavender fill would match
   the section background, so it goes white there instead - same pairing the
   cards use. */
section.inner_.content_trusted_logos.bg_light .trusted_logo_feature {
  background-color: var(--medbill-white);
}
section.inner_.content_trusted_logos.bg_dark .trusted_logo_feature,
section.inner_.content_trusted_logos.bg_primary .trusted_logo_feature {
  background-color: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
}
section.inner_.content_trusted_logos .trusted_logo_feature_text {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  color: #545267;
}
/* Hairline between the label and the mark, echoing the divider the mockup
   puts before the feature. :not(:last-child) so a text-only feature (no logo
   uploaded) doesn't end in a stray rule. */
section.inner_.content_trusted_logos .trusted_logo_feature_text:not(:last-child) {
  padding-right: 16px;
  border-right: 1px solid #d0cdd9;
}
section.inner_.content_trusted_logos.bg_dark .trusted_logo_feature_text,
section.inner_.content_trusted_logos.bg_primary .trusted_logo_feature_text {
  color: #d0cdd9;
}
section.inner_.content_trusted_logos.bg_dark .trusted_logo_feature_text:not(:last-child),
section.inner_.content_trusted_logos.bg_primary .trusted_logo_feature_text:not(:last-child) {
  border-right-color: rgba(255, 255, 255, 0.2);
}
section.inner_.content_trusted_logos .trusted_logo_feature img {
  height: 44px;
  width: auto;
  object-fit: contain;
  object-position: center;
  margin: 0;
}
/* Its own row under the columns grid (custom logos mode), following the
   section's alignment setting rather than always sitting hard left. */
section.inner_.content_trusted_logos .trusted_logo_feature_row {
  margin-top: 40px;
  justify-content: flex-start;
}
section.inner_.content_trusted_logos.align_center .trusted_logo_feature_row {
  justify-content: center;
}
section.inner_.content_trusted_logos.align_right .trusted_logo_feature_row {
  justify-content: flex-end;
}
@media only screen and (min-width: 240px) and (max-width: 767px) {
  /* Too narrow for label and mark side by side, so the pill becomes a stack
     and the hairline turns into the gap between the two. */
  section.inner_.content_trusted_logos .trusted_logo_feature {
    flex-direction: column;
    gap: 12px;
    padding: 18px 24px;
    border-radius: 20px;
    text-align: center;
  }
  section.inner_.content_trusted_logos .trusted_logo_feature_text:not(:last-child) {
    padding-right: 0;
    border-right: 0;
  }
  section.inner_.content_trusted_logos .trusted_logo_feature img {
    height: 36px;
  }
  section.inner_.content_trusted_logos .trusted_logo_feature_row {
    justify-content: center;
    margin-top: 32px;
  }
}
section.inner_.content_trusted_logos .logo_column_item img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_trusted_logos .logo_columns_grid {
    row-gap: 24px;
  }
  section.inner_.content_trusted_logos .logo_column_item {
    height: 33px;
  }
}

/* Flexible layout: Content - Text and Image (converted from the existing
   hardcoded "founder_section", About page) */
section.inner_.content_text_image .text-box h2 {
  /* Typography spec: h2 is 32px/weight 600 - was 50px/bold, which also
     directly contradicted the spec's weight for this heading level. Weight
     now comes from the sitewide h2 rule instead of being re-declared here. */
  font-size: 32px;
  color: var(--medbill-dark);
}
section.inner_.content_text_image .text-box h2 b {
  background: -webkit-linear-gradient(336deg, #7386ff 0%, #4959c1 40%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
section.inner_.content_text_image .img-box {
  padding-left: 70px;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  /* No font-size override needed here any more - 32px (the desktop size
     above, matching the type spec) already reads fine at every width;
     the old 40px/50px mobile-up-sizes only existed to counterbalance the
     previous 50px desktop size which no longer applies. */
  section.inner_.content_text_image .text-box h2 {
    text-align: left;
  }
  section.inner_.content_text_image .img-box {
    padding-left: 0;
    margin-top: 30px;
  }
}

/* Flexible layout: Content - Slider (middle ground of the two carousels in
   the reference HTML: the SmartSubmit step walkthrough and the Who We
   Service segment carousel). One slide visible at a time; the card, icon
   box, checklist and button are the same components the grid layouts use,
   so a slide reads as one of this system's cards. */
/* Only add the gap above the slider when there's an eyebrow/heading
   __full-wrap preceding it - see the same rule on Content - Columns. */
section.inner_.content_slider .__full-wrap ~ .content_slider_grid {
  margin-top: 40px;
}
/* Section button (section_button_label). Same 26px gap between the heading
   text-box and a following CTA that Banner - Checklist/CTA, Content - Cards
   and Content - Text and Image all use. */
section.inner_.content_slider .text-box + .button {
  margin-top: 26px;
}
/* The shared align_* rules only move the heading .text-box itself, so on a
   centred or right-aligned section the button underneath would stay hard
   left of it. These give the button the same 960px cap and side margins as
   the text-box above, and align the flex row inside it to match. */
section.inner_.content_slider.align_left .azuri_col_12 > .azuri_inner > .button,
section.inner_.content_slider.align_center .azuri_col_12 > .azuri_inner > .button,
section.inner_.content_slider.align_right .azuri_col_12 > .azuri_inner > .button {
  max-width: 960px;
}
section.inner_.content_slider.align_left .azuri_col_12 > .azuri_inner > .button {
  justify-content: flex-start;
  margin-right: auto;
}
section.inner_.content_slider.align_center .azuri_col_12 > .azuri_inner > .button {
  justify-content: center;
  margin-left: auto;
  margin-right: auto;
}
section.inner_.content_slider.align_right .azuri_col_12 > .azuri_inner > .button {
  justify-content: flex-end;
  margin-left: auto;
}
section.inner_.content_slider .slider_wrap {
  width: 100%;
}
section.inner_.content_slider .slider_tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}
section.inner_.content_slider .slider_tab {
  padding: 11px 22px;
  border: 0;
  border-radius: 999px;
  background-color: var(--medbill-light);
  color: #545267;
  font-family: "DM Sans", sans-serif;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  transition: 0.25s all;
}
section.inner_.content_slider .slider_tab.is-active {
  background-color: var(--feature-color, var(--medbill-primary));
  color: var(--medbill-white);
}
/* On a light (lavender) section the inactive pill's usual lavender fill
   would match the section background, so it goes white there instead -
   same pairing the cards use. */
section.inner_.content_slider.bg_light .slider_tab {
  background-color: var(--medbill-white);
}
section.inner_.content_slider.bg_dark .slider_tab,
section.inner_.content_slider.bg_primary .slider_tab {
  background-color: rgba(255, 255, 255, 0.08);
  color: #d0cdd9;
}
section.inner_.content_slider.bg_dark .slider_tab.is-active,
section.inner_.content_slider.bg_primary .slider_tab.is-active {
  background-color: var(--medbill-white);
  color: var(--medbill-dark);
}
/* Tab pills follow the section's alignment setting, the same way the heading
   text-box and its button do. Desktop only: below 1024px the pills are a
   horizontal scroll strip (see the mobile block at the end of this layout),
   and centring or end-aligning a flex row that overflows its container puts
   the first pills past the scroll origin, where they can't be reached. */
@media only screen and (min-width: 1024px) {
  section.inner_.content_slider.align_left .slider_tabs {
    justify-content: flex-start;
  }
  section.inner_.content_slider.align_center .slider_tabs {
    justify-content: center;
  }
  section.inner_.content_slider.align_right .slider_tabs {
    justify-content: flex-end;
  }
}
section.inner_.content_slider .slider_viewport {
  overflow: hidden;
}
section.inner_.content_slider .slider_track {
  display: flex;
  transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Inactive slides stay in the DOM (they're only translated out of view), so
   they're hidden outright once the transition has finished - visibility
   also takes them out of the tab order, which aria-hidden alone wouldn't.
   The delay is what keeps the outgoing slide visible while it slides away;
   the active slide drops the delay so it's visible for its own move in. */
section.inner_.content_slider .slider_slide {
  flex: 0 0 100%;
  width: 100%;
  visibility: hidden;
  transition: visibility 0s 0.55s;
}
section.inner_.content_slider .slider_slide.is-active {
  visibility: visible;
  transition-delay: 0s;
}
@media (prefers-reduced-motion: reduce) {
  section.inner_.content_slider .slider_track {
    transition: none;
  }
  section.inner_.content_slider .slider_slide {
    transition: none;
  }
}
section.inner_.content_slider .slider_card {
  display: flex;
  gap: 44px;
  height: 100%;
  background-color: var(--medbill-light);
  border: 1px solid #d0cdd9;
  border-radius: 16px;
  padding: 40px;
}
/* Same card-fill pairings as .feature_card: white on a lavender section,
   translucent white on a dark/primary one. */
section.inner_.content_slider.bg_light .slider_card {
  background-color: var(--medbill-white);
}
section.inner_.content_slider.bg_dark .slider_card,
section.inner_.content_slider.bg_primary .slider_card {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}
section.inner_.content_slider .slider_card_main {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
/* Each child carries its own margin (the mix of icon/step/heading/text/
   checklist/note/button all need different spacing), so the last one -
   whichever it happens to be - has its margin zeroed rather than leaving a
   stray gap before the card's own padding. */
section.inner_.content_slider .slider_card_main > *:last-child {
  margin-bottom: 0 !important;
}
section.inner_.content_slider .slider_card .icon_tile_box {
  /* The card's fill isn't white, so the grey .icon_tile_box default would
     blend into it - same tint override Content - Icon Tiles uses. */
  background-color: var(--feature-color-tint, #eef0ff);
  margin-bottom: 18px;
}
section.inner_.content_slider .slider_card_step {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
section.inner_.content_slider .slider_card_step_number {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background-color: var(--feature-color-tint, #eef0ff);
  color: var(--feature-color, var(--medbill-primary));
  font-size: 15px;
  font-weight: bold;
}
section.inner_.content_slider .slider_card_step_label {
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #545267;
}
section.inner_.content_slider .slider_card h3 {
  width: 100%;
  font-size: 24px;
  margin: 0 0 18px;
  color: var(--medbill-dark);
}
section.inner_.content_slider .slider_card_text,
section.inner_.content_slider .slider_card_side {
  width: 100%;
  margin-bottom: 18px;
}
section.inner_.content_slider .slider_card_text > *:last-child,
section.inner_.content_slider .slider_card_side > *:last-child {
  margin-bottom: 0;
}
section.inner_.content_slider .slider_card_text p,
section.inner_.content_slider .slider_card_text ul,
section.inner_.content_slider .slider_card_text ol,
section.inner_.content_slider .slider_card_side p,
section.inner_.content_slider .slider_card_side ul,
section.inner_.content_slider .slider_card_side ol {
  margin: 0 0 18px;
  color: #545267;
}
/* Without this the browser default (40px) applies, which is both deeper than
   the 1.2em the rest of this system indents lists by, and enough to visibly
   throw the list off from the paragraph above it. */
section.inner_.content_slider .slider_card_text ul,
section.inner_.content_slider .slider_card_text ol,
section.inner_.content_slider .slider_card_side ul,
section.inner_.content_slider .slider_card_side ol {
  padding-left: 1.2em;
}
section.inner_.content_slider .slider_card .checklist_list {
  width: 100%;
  margin-bottom: 18px;
}
/* The side column is where long reference lists land (e.g. the sub-specialty
   lists on Solutions), which run very tall in a single column - split them
   in two at every width, mobile included, rather than leaving a phone with
   an 18-item stack.
   padding-left/list-style-position: the ul's own padding only indents the
   first column, leaving the second column's markers hanging out into the
   gutter and the two columns visibly out of line with each other. Markers go
   inside the item box instead, so both columns start at the same edge. */
section.inner_.content_slider .slider_card_side ul {
  columns: 2;
  column-gap: 16px;
  padding-left: 0.85em;
  /* list-style-position: inside; */
}
section.inner_.content_slider .slider_card_side ul li {
  break-inside: avoid;
}
section.inner_.content_slider .slider_card_side ul li::marker {
  color: var(--feature-color, var(--medbill-primary));
  margin-right: 0.25em;
}
section.inner_.content_slider .slider_card_note {
  width: 100%;
  margin: 0 0 18px;
  padding: 16px 18px;
  border-radius: 14px;
  background-color: var(--medbill-white);
  font-size: 14px;
  line-height: 1.5;
  color: #545267;
}
section.inner_.content_slider.bg_light .slider_card_note {
  background-color: var(--medbill-light);
}
section.inner_.content_slider.bg_dark .slider_card_note,
section.inner_.content_slider.bg_primary .slider_card_note {
  background-color: rgba(255, 255, 255, 0.06);
}
/* Text colours above assume the card's light fill - flip them to their
   light-on-dark equivalents on a dark/primary section, same as
   .feature_card. */
section.inner_.content_slider.bg_dark .slider_card h3,
section.inner_.content_slider.bg_primary .slider_card h3 {
  color: var(--medbill-white);
}
section.inner_.content_slider.bg_dark .slider_card_step_label,
section.inner_.content_slider.bg_primary .slider_card_step_label,
section.inner_.content_slider.bg_dark .slider_card_note,
section.inner_.content_slider.bg_primary .slider_card_note,
section.inner_.content_slider.bg_dark .slider_card_text p,
section.inner_.content_slider.bg_primary .slider_card_text p,
section.inner_.content_slider.bg_dark .slider_card_text ul,
section.inner_.content_slider.bg_primary .slider_card_text ul,
section.inner_.content_slider.bg_dark .slider_card_text ol,
section.inner_.content_slider.bg_primary .slider_card_text ol,
section.inner_.content_slider.bg_dark .slider_card_side p,
section.inner_.content_slider.bg_primary .slider_card_side p,
section.inner_.content_slider.bg_dark .slider_card_side ul,
section.inner_.content_slider.bg_primary .slider_card_side ul,
section.inner_.content_slider.bg_dark .slider_card_side ol,
section.inner_.content_slider.bg_primary .slider_card_side ol {
  color: #d0cdd9;
}
section.inner_.content_slider.bg_dark .slider_card_step_number,
section.inner_.content_slider.bg_primary .slider_card_step_number {
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--medbill-white);
}
section.inner_.content_slider .slider_card_media {
  flex: 0 1 42%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
  min-width: 0;
}
/* Media frame. The square lives on this box rather than on the image, so
   every slide's media column is the same height whatever proportions the
   image has - the SmartSubmit screenshots are tall portraits, roughly 0.46:1.
   Putting aspect-ratio + object-fit: contain on the <img> itself is what
   loses the rounded corners: the picture is then painted as a narrow strip
   in the middle of the square, and the element's rounded corners fall out in
   the empty letterbox area where nothing is drawn. Here the frame carries
   the shape, and the image keeps its intrinsic ratio and its own radius, so
   the corners stay visible on the picture itself. The frame has no fill of
   its own, so it reads as space around the image rather than a panel. */
section.inner_.content_slider .slider_card_frame {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 12px;
}
@media only screen and (min-width: 1024px) {
  section.inner_.content_slider .slider_card_frame {
    aspect-ratio: 1;
  }
}
section.inner_.content_slider .slider_card_media img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 100%;
  margin: 0 auto;
  border-radius: 12px;
}
/* Icon stage (icon_position: "Right column"). The homepage mockup shows each
   service's icon large, centred on a circle with a dashed ring around it,
   opposite the text - this is that treatment. The ring is a pseudo-element
   so it can sit outside the circle without affecting layout. */
section.inner_.content_slider .slider_card_icon_stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 220px;
  height: 220px;
  max-width: 100%;
  margin: 0 auto;
  border-radius: 50%;
  border: 1px solid rgba(20, 17, 41, 0.12);
  background-image: radial-gradient(
    circle at 50% 40%,
    var(--feature-color-tint, #eef0ff),
    rgba(255, 255, 255, 0) 70%
  );
}
section.inner_.content_slider .slider_card_icon_stage::after {
  content: "";
  position: absolute;
  inset: -26px;
  border-radius: 50%;
  border: 1px dashed rgba(20, 17, 41, 0.12);
  animation: slider_icon_spin 20s linear infinite;
}
@keyframes slider_icon_spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  section.inner_.content_slider .slider_card_icon_stage::after {
    animation: none;
  }
}
/* The icon itself, well up from the 32px it runs at inside .icon_tile_box.
   Covers both shapes medbill_render_tile_icon() outputs: a plain <img>, and
   the masked <span> it swaps in when the page has a Feature Colour. */
section.inner_.content_slider .slider_card_icon_stage img {
  width: auto;
  height: 84px;
  max-width: 60%;
  margin: 0;
  border-radius: 0;
}
section.inner_.content_slider .slider_card_icon_stage .icon_tile_mask {
  width: 84px;
  height: 84px;
}
/* On a dark or primary section the ring and hairline need to read as light
   on dark, same inversion the cards and arrows use. */
section.inner_.content_slider.bg_dark .slider_card_icon_stage,
section.inner_.content_slider.bg_primary .slider_card_icon_stage {
  border-color: rgba(255, 255, 255, 0.12);
  background-image: radial-gradient(
    circle at 50% 40%,
    rgba(115, 134, 255, 0.16),
    rgba(255, 255, 255, 0) 70%
  );
}
section.inner_.content_slider.bg_dark .slider_card_icon_stage::after,
section.inner_.content_slider.bg_primary .slider_card_icon_stage::after {
  border-color: rgba(255, 255, 255, 0.1);
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_slider .slider_card_icon_stage {
    width: 160px;
    height: 160px;
  }
  section.inner_.content_slider .slider_card_icon_stage img {
    height: 64px;
  }
  section.inner_.content_slider .slider_card_icon_stage .icon_tile_mask {
    width: 64px;
    height: 64px;
  }
}
section.inner_.content_slider .slider_controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 24px;
}
section.inner_.content_slider .slider_controls_left {
  display: flex;
  align-items: center;
  gap: 14px;
}
section.inner_.content_slider .slider_dots {
  display: flex;
  align-items: center;
  gap: 8px;
}
/* The visible dot stays an 8px bar, but the button itself is 28px tall with
   the background painted only inside the content box - an 8px-tall tap
   target is well under what a finger can reliably hit. */
section.inner_.content_slider .slider_dot {
  position: relative;
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background-color: #d0cdd9;
  cursor: pointer;
  transition: width 0.3s ease, background-color 0.3s ease;
}
/* An 8px-tall dot is far too small to hit with a finger, but padding the
   button out would square off the visible bar (border-radius follows the
   border box, so a content-box background keeps its own corners sharp).
   The tap target is expanded with a transparent pseudo-element instead, so
   the dot itself stays an 8px pill. Half the 8px gap either side, so
   neighbouring targets meet without overlapping. */
section.inner_.content_slider .slider_dot::before {
  content: "";
  position: absolute;
  top: -12px;
  right: -4px;
  bottom: -12px;
  left: -4px;
}
section.inner_.content_slider .slider_dot.is-active {
  width: 34px;
  background-color: var(--feature-color, var(--medbill-primary));
}
section.inner_.content_slider.bg_dark .slider_dot.is-active,
section.inner_.content_slider.bg_primary .slider_dot.is-active {
  background-color: var(--medbill-white);
}
section.inner_.content_slider .slider_counter {
  font-size: 14px;
  color: #545267;
}
section.inner_.content_slider.bg_dark .slider_counter,
section.inner_.content_slider.bg_primary .slider_counter {
  color: #d0cdd9;
}
section.inner_.content_slider .slider_arrows {
  display: flex;
  gap: 12px;
}
section.inner_.content_slider .slider_arrow {
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1.5px solid #d0cdd9;
  border-radius: 50%;
  background-color: var(--medbill-white);
  /* Same feather chevron the .btn_secondary/.btn_simple buttons use. */
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.279" height="11.057" viewBox="0 0 6.279 11.057"><g transform="translate(-16.939 17.496) rotate(-90)"><path d="M16.436,18l-4.468,4.468L7.5,18" transform="translate(0 0)" fill="none" stroke="%23141129" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
  background-repeat: no-repeat;
  background-position: center;
  cursor: pointer;
  transition: 0.3s all;
}
/* One chevron asset for both directions - the button is a circle, so
   rotating the whole thing points it the other way. */
section.inner_.content_slider .slider_arrow_prev {
  transform: rotate(180deg);
}
section.inner_.content_slider .slider_arrow:hover {
  border-color: var(--feature-color, var(--medbill-primary));
}
section.inner_.content_slider.bg_dark .slider_arrow,
section.inner_.content_slider.bg_primary .slider_arrow {
  background-color: transparent;
  border-color: rgba(255, 255, 255, 0.3);
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.279" height="11.057" viewBox="0 0 6.279 11.057"><g transform="translate(-16.939 17.496) rotate(-90)"><path d="M16.436,18l-4.468,4.468L7.5,18" transform="translate(0 0)" fill="none" stroke="%23ffffff" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
}
section.inner_.content_slider.bg_dark .slider_arrow:hover,
section.inner_.content_slider.bg_primary .slider_arrow:hover {
  border-color: var(--medbill-white);
}
section.inner_.content_slider.bg_light .slider_arrow {
  background-color: var(--medbill-white);
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  section.inner_.content_slider .slider_card {
    flex-direction: column;
    gap: 24px;
    padding: 26px 16px;
  }
  /* The card is a column at this width, so the text side growing to fill
     just stretches it against a media block that is already sized to its
     own content. Both sides size to their content instead. */
  section.inner_.content_slider .slider_card_main {
    flex: 0 0 auto;
  }
  section.inner_.content_slider .slider_card_media {
    flex: 0 0 auto;
  }
  section.inner_.content_slider .slider_arrow {
    width: 44px;
    height: 44px;
  }
  /* Wrapped pills stack several rows deep at phone widths (four labels the
     length of "Surgical Assistants" take three rows on a 360px screen, and a
     seven-slide walkthrough is worse), pushing the slider itself off screen.
     Scroll them sideways in one row instead; the script keeps the active pill
     scrolled into view as slides change. */
  section.inner_.content_slider .slider_tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  section.inner_.content_slider .slider_tabs::-webkit-scrollbar {
    display: none;
  }
  section.inner_.content_slider .slider_tab {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  section.inner_.content_slider .slider_controls {
    gap: 16px;
  }
}

p:last-child {
  margin: 0;
}
.nav-float-right .header-widget {
  margin-left: inherit !important;
}
/* .nav-float-right #site-navigation {
  margin-left: 80px;
} */
.nav-float-right .header-widget a.contact_us {
  border-radius: 8px;
  background: #d6dcff;
  font-weight: bold;
  font-size: 16px;
  line-height: 41px;
  color: #7386ff;
  padding: 12px 35px;
}
.button,
.wp-block-button .wp-block-button__link {
  padding: 0;
}
a.btn.first {
  border-radius: 14px;
  background: var(--feature-color, #7386ff);
  color: #fff;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.15;
  padding: 12px 35px;
}
a.btn.first:hover {
  background: var(--feature-color-hover, #8596ff);
}
a.btn_simple.second {
  font-weight: bold;
  font-size: 18px;
  margin-left: 25px;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.279" height="11.057" viewBox="0 0 6.279 11.057"><g id="Icon_feather-arrow-down" data-name="Icon feather-arrow-down" transform="translate(-16.939 17.496) rotate(-90)"><path id="Path_394" data-name="Path 394" d="M16.436,18l-4.468,4.468L7.5,18" transform="translate(0 0)" fill="none" stroke="%23fff" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
  background-repeat: no-repeat;
  background-position: center right;
  padding-right: 21px;
  transition: 0.5s all;
}
a.btn_simple.second:hover {
  padding-right: 26px;
  transition: 0.5s all;
}
a {
  text-decoration: none !important;
}
.site-header {
  padding: 0;
}
/* Fixed (not absolute) so both rows stay pinned to the viewport on scroll
   instead of scrolling away with the page underneath - the overlay-on-hero
   look (see .medbill-sections > *:first-child's clearance padding above)
   is the same either way, this just keeps it there permanently. The dark
   background below is toggled by medbill_print_sticky_header_script()
   (functions.php), which adds body.is-header-scrolled once the page has
   scrolled past the top bar, so the transparent overlay only turns solid
   once there's page content passing underneath it to read against. */
header#masthead,
.top-bar.top-bar-align-right {
  left: 0;
  right: 0;
  z-index: 3;
  position: fixed;
  transition: background-color 0.3s ease;
}
header#masthead {
  z-index: 2;
}
.top-bar.top-bar-align-right {
  top: 0;
}
header#masthead {
  top: 40px;
}
.admin-bar header#masthead {
  top: 70px;
}
/* Fixed positioning (unlike the absolute positioning above it replaces) is
   relative to the viewport, not the document, so it no longer automatically
   shifts down with the body's own admin-bar margin - needs its own explicit
   offset instead. Only needed on desktop: the top bar is already hidden
   below 1024px (see the mobile media query), which is the only width where
   WordPress's admin bar isn't a flat 32px. */
.admin-bar .top-bar.top-bar-align-right {
  top: 32px;
}
body.is-header-scrolled header#masthead {
  background-color: var(--medbill-dark);
}
/* Below 1024px, header#masthead above is hidden entirely (see the "Mobile
   Site Navigation" GP Elements hook on generate_after_header, which
   !important-hides header.site-header itself under its own media query) -
   .mobile-wrap/.mobile-header is that hook's own separate mobile bar, so it
   needs this same sticky + scrolled-dark treatment independently; nothing
   in header#masthead's own rules above reaches it. .mobile-wrap's
   position: absolute is a plain inline style attribute in that hook's raw
   HTML output (not a stylesheet rule), which any external CSS - "!important"
   or not - already overrides by cascade rules, but "position" isn't
   inherited so it still needs restating here rather than left to win by
   default; !important is used anyway for robustness against that markup
   ever gaining its own !important override later. */
.mobile-wrap {
  position: fixed !important;
  top: 0 !important;
  /* .mobile-wrap's own inline style sets overflow: hidden. By spec a
     fixed-position descendant like .mobile-overlay below should escape an
     ancestor's overflow clipping (only a transform/filter/etc on the
     ancestor would actually contain it), but mobile browsers are
     inconsistent about honouring that distinction once the fixed ancestor
     chain includes an overflow:hidden - visible removes it as a variable
     entirely. */
  overflow: visible !important;
}
/* .mobile-navigation (the actual scrollable box - already overflow: auto
   via its own inline style) needs this for iOS Safari to allow touch/
   momentum scrolling at all inside a position:fixed ancestor
   (.mobile-overlay); without it, older iOS versions render the scrollbar
   but don't respond to touch drags. Harmless no-op on browsers that don't
   need it. */
.mobile-navigation {
  -webkit-overflow-scrolling: touch;
}
.mobile-header {
  transition: background-color 0.3s ease;
}
body.is-header-scrolled .mobile-header {
  background-color: var(--medbill-dark);
}
p.top_left {
  font-weight: 700;
}
p.top_right a {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="14.805" height="14.805" viewBox="0 0 14.805 14.805"><path id="Icon_awesome-user-alt" data-name="Icon awesome-user-alt" d="M7.4,8.328A4.164,4.164,0,1,0,3.239,4.164,4.165,4.165,0,0,0,7.4,8.328Zm3.7.925H9.511a5.034,5.034,0,0,1-4.216,0H3.7a3.7,3.7,0,0,0-3.7,3.7v.463a1.388,1.388,0,0,0,1.388,1.388H13.417a1.388,1.388,0,0,0,1.388-1.388v-.463A3.7,3.7,0,0,0,11.1,9.253Z" fill="%237386ff"/></svg>');
  background-repeat: no-repeat;
  margin-left: 20px;
  color: #7386ff;
  border-radius: 4px;
  background-color: #fff;
  padding: 9px 25px;
  padding-left: 43px;
  background-position: 17px 7px;
  font-size: 14px;
  font-weight: 700;
}
.page-header,
.sidebar .widget,
.site-main > * {
  margin-bottom: 0;
}
.top-bar a:hover {
  color: #000;
}
.main-navigation ul ul {
  background-color: #d6dcff !important;
}
.main-navigation ul ul.quadmenu-row,
.main-navigation ul ul.quadmenu-row ul {
  background: transparent !important;
}
.main-navigation ul ul span.quadmenu-text {
  font-weight: normal;
}
div#primary-menu li a {
  padding: 0;
  margin: 0 20px;
  position: relative;
}
div#primary-menu li a:after {
  content: "";
  padding-right: 0;
  transition: 0.5s all;
  position: absolute;
}
div#primary-menu li:hover a:after {
  content: "";
  height: 3px;
  background-color: #7386ff;
  position: absolute;
  bottom: 0;
  left: 0;
  padding-right: 38px;
}
div#page.grid-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.home div#page.grid-container,
.full-width-content div#page {
  padding-left: 0px !important;
  padding-right: 0 !important;
}
.grid-container {
  padding-left: 0;
  padding-right: 0;
}
img {
  max-width: 100%;
}
textarea {
  resize: none;
}
header#masthead .inside-header.grid-container {
  position: relative;
}
.bg_all_over {
  position: absolute;
  top: 0;
  bottom: 0;
  height: 100%;
  left: 0;
  right: 0;
  width: fit-content;
  z-index: 0;
  width: 100%;
}
.bg_all_over img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.bg_all_over img {
  border-radius: 0 !important;
}
.inside-navigation.grid-container {
  padding: 0;
}
.azuri_col_1,
.azuri_col_2,
.azuri_col_3,
.azuri_col_4,
.azuri_col_5,
.azuri_col_6,
.azuri_col_7,
.azuri_col_8,
.azuri_col_9,
.azuri_col_10,
.azuri_col_11,
.azuri_col_12 {
  position: relative;
  min-height: 1px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  float: left;
}
.azuri_col_1 {
  width: 8.33333333%;
}
.azuri_col_2 {
  width: 16.66666667%;
}
.azuri_col_3 {
  width: 25%;
}
.azuri_col_4 {
  width: 33.33333333%;
}
.azuri_col_5 {
  width: 41.66666667%;
}
.azuri_col_6 {
  width: 50%;
}
.azuri_col_7 {
  width: 58.33333333%;
}
.azuri_col_8 {
  width: 66.66666667%;
}
.azuri_col_9 {
  width: 75%;
}
.azuri_col_10 {
  width: 83.33333333%;
}
.azuri_col_11 {
  width: 91.66666667%;
}
.azuri_col_12 {
  width: 100%;
}
/* Utility: same max-width/left-align treatment as the section_alignment
   "align_left" rule above, for the two layouts that don't have that field
   (Banner - Image / Banner - Checklist). Applied when there's no
   image/checklist card to fill the second column, so the text column
   expands to the full row but the actual text stays capped at 960px,
   left-aligned, instead of running edge-to-edge. */
.col_max_960 > .azuri_inner > .text-box {
  max-width: 800px;
  text-align: left;
  margin-right: auto;
}
/* Utility: a repeater row added but left completely blank renders as this -
   an empty column that still takes up its normal grid slot on desktop (so
   editors can deliberately add one to force an early wrap in a gridded
   layout, e.g. Content - Icon Tiles), but is hidden on mobile, where
   everything stacks to one column and an empty block would just be dead
   space with no layout purpose. */
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  .grid_spacer_col {
    display: none;
  }
}
.azuri-container {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
}
.equal-height {
  box-sizing: border-box;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  -ms-flex-pack: justify;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 0 -15px;
}
.equal-height .equal-height {
  margin: 0;
}
.azuri_col {
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.azuri_inner .azuri_inner {
  padding: 0;
}
.azuri_inner {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  z-index: 1;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  box-sizing: border-box;
  padding-left: 20px;
  padding-right: 20px;
  width: 100%;
}
.copyright-bar {
  margin: 0 !important;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  width: 100%;
  border-top: 1px solid #332d5d;
  padding-top: 30px;
  align-content: flex-end;
}
.copyright-bar img {
  display: block;
  margin-bottom: 6px;
}
.copyright-bar .copy_right b {
  color: #332d5d;
  margin: 0 10px;
}
.footer-widgets-container.grid-container {
  border-top: 1px solid #332d5d;
  padding-top: 60px;
}
div#footer-widgets a.phone_,
div#footer-widgets a.control_ {
  background-repeat: no-repeat;
  padding-left: 23px;
  margin-bottom: 12px;
  display: inline-block;
  background-position: 0;
}
div#footer-widgets a.phone_ {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="13.943" height="13.943" viewBox="0 0 13.943 13.943"><path id="Icon_awesome-phone-alt" data-name="Icon awesome-phone-alt" d="M13.546,9.853,10.5,8.546a.654.654,0,0,0-.763.188l-1.351,1.65A10.094,10.094,0,0,1,3.557,5.559l1.65-1.351a.652.652,0,0,0,.188-.763L4.088.4A.658.658,0,0,0,3.339.017L.507.67A.654.654,0,0,0,0,1.307,12.635,12.635,0,0,0,12.636,13.944a.654.654,0,0,0,.637-.507l.654-2.832a.662.662,0,0,0-.382-.752Z" transform="translate(0 0)" fill="%237386ff"/></svg>');
}
div#footer-widgets a.control_ {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="12.599" height="14.399" viewBox="0 0 12.599 14.399"><path id="Icon_awesome-user" data-name="Icon awesome-user" d="M6.3,7.2A3.6,3.6,0,1,0,2.7,3.6,3.6,3.6,0,0,0,6.3,7.2Zm2.52.9H8.35a4.9,4.9,0,0,1-4.1,0H3.78A3.781,3.781,0,0,0,0,11.879v1.17A1.35,1.35,0,0,0,1.35,14.4h9.9a1.35,1.35,0,0,0,1.35-1.35v-1.17A3.781,3.781,0,0,0,8.819,8.1Z" fill="%237386ff"/></svg>');
}
.ap-store-link {
  display: inline-block;
  vertical-align: top;
  line-height: 0px;
}
.footer_social_links {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
}
.footer_social_links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: var(--medbill-primary);
  color: #fff;
  transition: color 0.2s ease, background-color 0.2s ease;
}
.footer_social_links a svg {
  width: 16px;
  height: 16px;
}
.footer_social_links a:hover {
  color: #93909e;
  background-color: rgba(255, 255, 255, 0.08);
}
@media (max-width: 1023px) {
  .footer_social_links.inner-padding {
    padding: 0 !important;
  }
}
aside#media_image-2 {
  margin-bottom: 20px;
}
.mobile-only {
  display: none;
}
.gform_body.gform-body input:-ms-input-placeholder,
.gform_body.gform-body textarea:-ms-input-placeholder,
.gform_body.gform-body input:-ms-input-placeholder {
  color: #9d9aa8 !important;
}
.gform_body.gform-body input::-webkit-input-placeholder,
.gform_body.gform-body textarea::-webkit-input-placeholder,
.gform_body.gform-body select::-webkit-input-placeholder {
  color: #9d9aa8 !important;
}
.gform_body.gform-body input:-ms-input-placeholder,
.gform_body.gform-body textarea:-ms-input-placeholder,
.gform_body.gform-body select:-ms-input-placeholder {
  color: #9d9aa8 !important;
}
.gform_body.gform-body input::placeholde,
.gform_body.gform-body textarea::placeholde,
.gform_body.gform-body select::placeholde {
  color: #9d9aa8 !important;
}
.gfield_error input::-webkit-input-placeholder,
.gfield_error textarea::-webkit-input-placeholder {
  color: #c02b0a !important;
}
.gfield_error input:-ms-input-placeholder,
.gfield_error textareea:-ms-input-placeholder {
  color: #c02b0a !important;
}
.gfield_error input::placeholder,
.gfield_error textarea::placeholder {
  color: #c02b0a !important;
}
h2.gform_submission_error.hide_summary {
  font-weight: bold;
}
.gform_body.gform-body .gfield_error {
  position: relative !important;
}
.gform_wrapper .gform_validation_errors {
  background: transparent;
}
.gform_wrapper .gform_validation_errors {
  background: transparent !important;
  border-radius: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  padding-right: 0 !important;
  outline: none !important;
}
.gform_wrapper.gravity-theme .gfield_error [aria-invalid="true"],
div#gform_wrapper_4.gform_validation_error input#input_4_12_5 {
  border: 1px solid #c02b0a !important;
}
.gform_wrapper .gfield_validation_message,
.gform_wrapper.gform_validation_error
  .validation_message.gfield_validation_message {
  background: transparent !important;
  border: 0 !important;
  font-size: 8px !important;
  margin-top: 0 !important;
  padding: 0 !important;
  position: absolute;
  right: 9px !important;
  bottom: -22px !important;
  text-align: right !important;
  left: inherit !important;
  width: auto !important;
}
div#gform_wrapper_4.gform_validation_error
  .validation_message.gfield_validation_message {
  display: none !important;
}
div#gform_wrapper_4 div#field_4_9 label.gfield_label {
  margin-top: 20px !important;
}
div#gform_wrapper_4 div#field_4_9 label.gfield_label,
div#gform_wrapper_4 div#field_4_10 label.gfield_label,
div#gform_wrapper_4 div#field_4_12 .gfield_label,
div#gform_wrapper_4.gform_validation_error div#field_4_9 label.gfield_label,
div#gform_wrapper_4.gform_validation_error div#field_4_10 label.gfield_label,
div#gform_wrapper_4 fieldset#field_4_12 legend.gfield_label {
  padding-left: 0 !important;
}
div#gform_wrapper_4 div#field_4_10 input#input_4_10 {
  font-size: 30px;
  padding-left: 0 !important;
}
div#gform_wrapper_4.gform_validation_error div#validation_message_4_8 {
  display: block !important;
  width: 100% !important;
  text-align: left !important;
  left: 0px !important;
  bottom: -35px !important;
  font-size: 12px !important;
  font-weight: bold;
}
.gform_wrapper.gravity-theme .gform_fields {
  grid-row-gap: 6px !important;
}
button.button.gform_button {
  border-radius: 10px;
  background-color: #7386ff;
  font-weight: bold;
  font-size: 16px;
  padding: 10px 30px;
  text-align: left;
  width: 196.21px;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.278" height="11.057" viewBox="0 0 6.278 11.057"><g id="Icon_feather-arrow-down" data-name="Icon feather-arrow-down" transform="translate(1.061 9.996) rotate(-90)"><path id="Path_394" data-name="Path 394" d="M8.936,0,4.468,4.468,0,0" fill="none" stroke="%23fff" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
  background-repeat: no-repeat;
  height: 47px;
  background-position: center right 30px;
}
button.button.gform_button:hover {
  background-color: #8596ff;
}
div#field_submit {
  justify-content: flex-end;
  align-items: flex-end;
  grid-column: span 12;
}
fieldset#field_1_7 {
  margin-top: 20px;
  margin-left: 20px;
}
fieldset#field_1_7 label#label_1_7_1 {
  font-weight: normal;
  font-size: 14px;
  line-height: 21px;
  text-align: left;
  color: #9d9aa8;
  margin-left: 14px;
}
fieldset#field_1_7 .gfield-choice-input {
  margin-top: 6px;
  vertical-align: top;
}
div#gform_wrapper_4 .gform-body.gform_body .gform-field-label--type-sub {
  font-size: 13px !important;
  font-weight: bold;
}
div#gform_wrapper_4 div#validation_message_4_12 {
  position: static;
  text-align: left !important;
  font-size: 15px !important;
  margin-top: 20px !important;
  font-weight: bold !important;
}
div#gform_wrapper_4 span#input_4_12_2_cardinfo_right {
  column-gap: 10px;
  align-items: baseline;
  margin-bottom: 20px !important;
}
section.inner_.get_started_section {
  background-color: #f3f2f8;
  padding-top: 80px;
  padding-bottom: 80px;
}
section.inner_.get_started_section .__full-wrap.equal-height {
  align-items: start;
}
section.inner_.get_started_section h2 {
  font-weight: bold;
  font-size: 50px;
  color: #141129;
}
section.inner_.get_started_section h2 b {
  background: -webkit-linear-gradient(71deg, #dcdeeb 0%, #4959c1 40%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
section.inner_.get_started_section .below_sec {
  border-top: 1px solid #e4e2ef;
  padding-top: 20px;
}
section.inner_.get_started_section .below_sec a {
  color: #7386ff;
  margin-left: 18px;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="13.149" height="13.149" viewBox="0 0 13.149 13.149"><path id="Icon_awesome-phone-alt" data-name="Icon awesome-phone-alt" d="M12.774,9.292,9.9,8.06a.616.616,0,0,0-.719.177L7.9,9.793A9.52,9.52,0,0,1,3.354,5.242L4.911,3.969a.615.615,0,0,0,.177-.719L3.855.373A.62.62,0,0,0,3.149.016L.478.632a.616.616,0,0,0-.478.6A11.915,11.915,0,0,0,11.917,13.15a.616.616,0,0,0,.6-.478L13.134,10a.624.624,0,0,0-.36-.709Z" transform="translate(0 0)" fill="%237386ff"/></svg>');
  background-repeat: no-repeat;
  background-position: center left;
  padding-left: 23px;
}
section.inner_.get_started_section
  .gform-body.gform_body
  label.gfield_label.gform-field-label,
.gform-body.gform_body label.gfield_label.gform-field-label,
legend.gfield_label.gform-field-label.gfield_label_before_complex {
  font-weight: 600;
  font-size: 14px;
  text-align: left;
  margin-bottom: 0;
  padding-left: 15px;
}
section.inner_.get_started_section .gform-body.gform_body input,
section.inner_.get_started_section .gform-body.gform_body select,
section.inner_.get_started_section .gform-body.gform_body textarea,
.gform-body.gform_body input,
.gform-body.gform_body select,
.gform-body.gform_body textarea {
  border-radius: 7px;
  background: #e6e4eb;
  border: 1px solid #e6e4eb;
  padding: 10px 15px !important;
  color: #141129;
  font-size: 14px;
}
.gform-body.gform_body textarea {
  height: 100px !important;
}
div#input_5_14 .gchoice {
  display: inline;
  margin-right: 10px;
}
section.inner_.get_started_section .gform-body.gform_body select,
.gform-body.gform_body select {
  appearance: none;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="12.999" height="7.75" viewBox="0 0 12.999 7.75"><g id="Icon_feather-arrow-down" data-name="Icon feather-arrow-down" transform="translate(1.768 1.768)"><path id="Path_394" data-name="Path 394" d="M16.963,18l-4.732,4.732L7.5,18" transform="translate(-7.5 -18)" fill="none" stroke="%239d9aa8" stroke-linecap="square" stroke-linejoin="round" stroke-width="2.5"/></g></svg>');
  background-repeat: no-repeat;
  background-position: center right 10px;
  color: #9d9aa8;
}
.gform-body.gform_body .gfield_description,
.gform-body.gform_body .gform-field-label--type-sub {
  font-size: 12px !important;
  padding-top: 0 !important;
}
.gform_footer.top_label {
  padding-bottom: 0 !important;
}
.gform_footer.top_label button {
  margin-bottom: 0 !important;
}
.ginput_container.ginput_container_date,
.ginput_container.ginput_container_date input {
  display: block !important;
  width: 100% !important;
}
section.inner_.get_started_section .gform-body.gform_body input:focus,
section.inner_.get_started_section .gform-body.gform_body select:focus,
section.inner_.get_started_section .gform-body.gform_body textarea:focus,
.gform-body.gform_body input:focus,
.gform-body.gform_body select:focus,
.gform-body.gform_body textarea:focus {
  border-color: #7386ff;
}
fieldset#field_1_7 .gfield-choice-input {
  margin-top: 6px;
  vertical-align: top;
}
fieldset#field_1_7 label#label_1_7_1 {
  font-weight: normal;
  font-size: 14px;
  line-height: 21px;
  text-align: left;
  color: #9d9aa8;
  margin-left: 14px;
}
section.inner_.get_started_section .gform_footer.top_label {
  display: none !important;
}
#menu-item-476 {
  display: none;
}
.gfield_course_option_wrapper ul {
  list-style: none;
  margin: 0;
}
.blog .inner_page_header,
.single-post .inner_page_header {
  padding-top: 220px;
  padding-bottom: 120px;
  text-align: center;
}
.blog .inside-article .post-image img {
    display: flex; 
    border-radius: 14px 14px 0 0;
}
.blog .inside-article .post-image {
    margin-top: 0 !important;
}
.blog .inner_page_header .text-box h1,
.single-post .inner_page_header .text-box h1 {
  margin-bottom: 40px;
}
.blog .generate-columns .inside-article {
  border-radius: 14px;
  background: #f3f2f8;
  padding: 0; 
    padding-bottom: 30px;
}
.blog .generate-columns .inside-article header.entry-header, 
.blog .generate-columns .inside-article .entry-summary {
    padding-left: 30px;
    padding-right: 30px;
}
.blog .generate-columns .inside-article header.entry-header .entry-title {
  line-height: 20px !important;
  height: auto;
}
.blog .generate-columns .inside-article header.entry-header a {
  font-weight: bold;
  font-size: 24px;
  line-height: 34px;
  text-align: left;
  color: #141129;
}
.blog .generate-columns .inside-article .entry-summary p {
  font-size: 0;
}
.blog .generate-columns .inside-article .entry-summary a.read-more {
  font-weight: normal;
  font-size: 18px;
  line-height: 41px;
  text-align: left;
  color: #7386ff;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.278" height="11.057" viewBox="0 0 6.278 11.057"><g id="Icon_feather-arrow-down" data-name="Icon feather-arrow-down" transform="translate(-16.939 17.496) rotate(-90)"><path id="Path_394" data-name="Path 394" d="M16.436,18l-4.468,4.468L7.5,18" transform="translate(0 0)" fill="none" stroke="%237386ff" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
  background-repeat: no-repeat;
  background-position: center right;
  padding-right: 25px;
  transition: 0.5s all;
}
.blog .generate-columns .inside-article .entry-summary a.read-more:hover {
  padding-right: 20px;
  transition: 0.5s all;
}
.blog div#content,
.single-post div#content {
  padding-top: 70px;
  padding-bottom: 30px;
}
.single-post div#content {
  padding-bottom: 70px;
}
.blog .generate-columns {
  margin-bottom: 40px;
  padding-left: 40px;
}
.blog .separate-containers .site-main .generate-columns-container {
  margin-bottom: 0;
  margin-left: -40px;
}
.blog div#content main#main,
.single-post div#content main#main {
  margin: 0;
}
.single-post .entry-header {
  display: none !important;
}
.single-post .inside-article {
  padding: 0;
}
.single-post .entry-content {
  margin: 0;
}
#quadmenu.quadmenu-generatepress .quadmenu-navbar-nav li.quadmenu-item a {
  font-size: 16px !important;
  font-weight: bold;
}
#quadmenu.quadmenu-generatepress
  .quadmenu-navbar-nav
  > li:not(.quadmenu-item-type-button).quadmenu-has-link {
  background-color: transparent !important;
}
.separate-containers .site-main {
  margin: 0 !important;
}
.new_html_form.treat_all .form_body {
  display: grid;
  column-gap: 20px;
  row-gap: 17px;
}
.new_html_form.treat_all .form_body .form_filed.full {
  grid-column: span 12;
  -ms-grid-column-span: 12;
}
.new_html_form.treat_all .form_body .form_filed.half,
.new_html_form.treat_all .form_body .form_button.half {
  grid-column: span 6;
  -ms-grid-column-span: 6;
}
.new_html_form.treat_all .form_body .form_button.half button {
  margin-top: 13px;
}
.new_html_form.treat_all .hidden_input {
  display: none;
}
.new_html_form.treat_all .form_body .form_filed label {
  font-weight: 600;
  font-size: 14px;
  text-align: left;
  margin-bottom: 0;
  padding-left: 15px;
}
.new_html_form.treat_all .form_body .form_filed input,
.new_html_form.treat_all .form_body .form_filed select,
.new_html_form.treat_all .form_body .form_filed textarea {
  border-radius: 7px;
  background: #e6e4eb;
  border: 1px solid #e6e4eb;
  padding: 10px 15px !important;
  color: #141129;
  font-size: 14px;
  width: 100%;
}
.new_html_form.treat_all .form_body .form_filed select {
  appearance: none;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="12.999" height="7.75" viewBox="0 0 12.999 7.75"><g id="Icon_feather-arrow-down" data-name="Icon feather-arrow-down" transform="translate(1.768 1.768)"><path id="Path_394" data-name="Path 394" d="M16.963,18l-4.732,4.732L7.5,18" transform="translate(-7.5 -18)" fill="none" stroke="%239d9aa8" stroke-linecap="square" stroke-linejoin="round" stroke-width="2.5"/></g></svg>');
  background-repeat: no-repeat;
  background-position: center right 10px;
  color: #9d9aa8;
}
.new_html_form.treat_all .form_body .form_filed input:focus,
.new_html_form.treat_all .form_body .form_filed select:focus,
.new_html_form.treat_all .form_body .form_filed textarea:focus {
  border-color: #7386ff;
}
.new_html_form.treat_all .form_body .form_button {
  padding-bottom: 0 !important;
  display: block;
  text-align: right;
  grid-column: span 12;
}
.new_html_form.treat_all .form_body .form_button button {
  border-radius: 10px;
  background-color: #7386ff;
  font-weight: bold;
  font-size: 16px;
  padding: 10px 30px;
  text-align: left;
  width: 200px;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6.278" height="11.057" viewBox="0 0 6.278 11.057"><g id="Icon_feather-arrow-down" data-name="Icon feather-arrow-down" transform="translate(1.061 9.996) rotate(-90)"><path id="Path_394" data-name="Path 394" d="M8.936,0,4.468,4.468,0,0" fill="none" stroke="%23fff" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5"/></g></svg>');
  background-repeat: no-repeat;
  height: 47px;
  background-position: center right 30px;
}
.new_html_form .form_body .form_filed label em {
  color: red;
}
.page-id-1047 .inside-article,
.page-id-1056 .inside-article {
  margin-top: 22px;
  padding-bottom: 20px;
}
.error404 .inner_page_header {
  padding-top: 380px;
  padding-bottom: 170px;
}
.error404 div#page {
  display: none !important;
}
.error404 .inner_page_header .text-box h1 {
  margin-bottom: 40px;
}
div#gform_wrapper_6 div#field_submit,
div#gform_wrapper_9 div#field_submit {
  grid-column: span 6;
  align-items: center;
}
div#field_6_15 {
  grid-column: span 6;
}
@media only screen and (min-width: 240px) and (max-width: 1023px) {
  div#gform_wrapper_6 div#field_submit,
  div#gform_wrapper_9 div#field_submit {
    grid-column: span 12;
  }
  #menu-item-476 {
    display: block;
  }
  .inner_page_header.blog {
    padding-bottom: 50px !important;
  }
  section.inner_.grids_within_content .main_heading h3 {
    padding: 10px;
  }
  table.grid-table {
    overflow-x: scroll;
    display: block;
  }
  table.grid-table th {
    padding: 2px;
  }
  .centers {
    text-align: left !important;
  }
  iframe#podium-bubble {
    bottom: 60px !important;
  }
  .azuri-container,
  header#masthead .inside-header.grid-container,
  .site-footer .footer-widgets-container.grid-container,
  .site-footer footer.site-info .inside-site-info.grid-container,
  .blog div#page.grid-container,
  .single-post div#page.grid-container {
    max-width: 100%;
    padding-left: 25px !important;
    padding-right: 25px !important;
  }
  .azuri_col_1,
  .azuri_col_2,
  .azuri_col_3,
  .azuri_col_4,
  .azuri_col_5,
  .azuri_col_6,
  .azuri_col_7,
  .azuri_col_8,
  .azuri_col_9,
  .azuri_col_10,
  .azuri_col_11,
  .azuri_col_12 {
    width: 100%;
  }
  .azuri_xs_col_1 {
    width: 8.33333333%;
  }
  .azuri_xs_col_2 {
    width: 16.66666667%;
  }
  .azuri_xs_col_3 {
    width: 25%;
  }
  .azuri_xs_col_4 {
    width: 33.33333333%;
  }
  .azuri_xs_col_5 {
    width: 41.66666667%;
  }
  .azuri_xs_col_6 {
    width: 50%;
  }
  .azuri_xs_col_7 {
    width: 58.33333333%;
  }
  .azuri_xs_col_8 {
    width: 66.66666667%;
  }
  .azuri_xs_col_9 {
    width: 75%;
  }
  .azuri_xs_col_10 {
    width: 83.33333333%;
  }
  .azuri_xs_col_11 {
    width: 91.66666667%;
  }
  .azuri_xs_col_12 {
    width: 100%;
  }
  .azuri-container .azuri-container {
    padding: 0 !important;
    margin: 0 !important;
  }
  .no_equal-height,
  .equal-height {
    margin: 0;
  }
  .azuri_inner {
    padding: 0 !important;
  }
  nav#generate-slideout-menu.is-open {
    left: 0;
    width: 100%;
    border: 0;
    background-color: #fff;
  }
  button.slideout-exit {
    position: absolute;
    right: 6px !important;
    width: auto !important;
    top: 24px;
    left: inherit;
    text-align: right !important;
  }
  nav#mobile-menu-control-wrapper {
    background: transparent;
  }
  .site-logo img {
    width: 150px;
  }
  .main-navigation button.menu-toggle {
    padding: 0 !important;
    background-color: transparent !important;
  }
  .site-header {
    padding: 12px 0;
  }
  .inside-header,
  nav#generate-slideout-menu.is-open {
    padding-right: 30px;
    padding-left: 30px;
  }
  button.menu-toggle {
    font-size: 30px;
  }
  nav#generate-slideout-menu.is-open {
    padding-top: 20px;
  }
  .slideout-navigation button.slideout-exit {
    padding: 0 !important;
  }
  .top-bar.top-bar-align-right,
  .offside-js--is-open .slideout-overlay,
  .header-widget {
    display: none !important;
  }
  /* The top bar (hidden above) is what header#masthead's "top: 40px" makes
     room for on desktop - with it gone, that same offset would leave a
     permanent 40px gap of page content showing above the fixed header
     instead of sitting flush with the top of the viewport. Admin-bar offset
     uses WordPress's own mobile admin bar height (46px, its own breakpoint
     is 782/783px - see the override for the upper half of this range
     below), not the desktop 70px further up. */
  header#masthead {
    top: 0;
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .admin-bar header#masthead {
    top: 46px;
  }
  .site-logo {
    top: 0;
  }
  picture.bg_all_over.only_desktop,
  picture.desktop-only.bg_all_over,
  picture.desktop-only,
  .desktop-only {
    display: none !important;
  }
  picture.bg_all_over.only_mobile,
  picture.mobile-only,
  .mobile-only {
    display: block !important;
  }
  .no-csstransforms3d .offside {
    transform: translate3d(0, 0, 0) !important;
  }
  .half_li {
    column-count: 1;
  }
  ul.ul_li li:last-child {
    margin-bottom: 0;
  }
  .button {
    display: block;
    text-align: center;
  }
  .button a.btn.first {
    width: 100%;
    display: block;
    margin-bottom: 20px;
  }
  a.btn_simple.second {
    margin-left: 0;
  }
  .gform_wrapper.gravity-theme #field_submit,
  .gform_wrapper.gravity-theme .gform_footer {
    display: block;
  }
  button.button.gform_button {
    width: 100%;
  }
  fieldset#field_1_7 {
    margin-top: 0;
    margin-left: 0;
  }
  fieldset#field_1_7 label#label_1_7_1 {
    margin-left: 4px;
  }
  .blog .inner_page_header,
  .single-post .inner_page_header {
    padding-top: 100px;
    padding-bottom: 20px;
    text-align: center;
  }
  .single-post div#content {
    padding-bottom: 40px;
  }
  .blog div#content,
  .single-post div#content {
    padding-top: 40px;
    padding-bottom: 30px;
  }
  .new_html_form.treat_all .form_body .form_filed.half {
    grid-column: span 12;
    -ms-grid-column-span: 12;
  }
  .new_html_form.treat_all .form_body .form_button button {
    width: 100%;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .button {
    display: inline-block;
  }
  .button a.btn.first {
    display: inline;
    margin-right: 20px;
  }
}
/* WordPress's own admin bar switches from its 46px mobile height to the
   full-size 32px at 783px (its breakpoint, not this theme's 1024px one),
   so the mobile .admin-bar header#masthead offset above needs its own
   correction for the upper part of this theme's mobile/tablet range. */
@media only screen and (min-width: 783px) and (max-width: 1023px) {
  .admin-bar header#masthead {
    top: 32px;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1199px) {
  .azuri-container,
  header#masthead .inside-header.grid-container,
  .site-footer .footer-widgets-container.grid-container,
  .site-footer footer.site-info .inside-site-info.grid-container,
  .inside-top-bar,
  .blog div#page.grid-container,
  .single-post div#page.grid-container {
    padding-left: 25px !important;
    padding-right: 25px !important;
  }
  div#content {
    margin-top: 0 !important;
  }
  .footer-widgets-container {
    padding-top: 50px;
    padding-bottom: 50px;
  }
  #quadmenu.quadmenu-generatepress .quadmenu-navbar-nav > li.quadmenu-item > a,
  #quadmenu.quadmenu-generatepress
    .quadmenu-navbar-nav
    > li.quadmenu-item
    > form {
    font-size: 12px !important;
  }
  .nav-float-right .header-widget a.contact_us,
	.nav-float-right .header-widget a.btn {
    font-size: 12px;
    padding: 12px 15px;
  }
}
.single-post .entry-content a {
  text-decoration: underline !important;
}

/* ============================================
   MEDBILL × RACP — Scoped styles
   Add to child theme style.css
   ============================================ */

.medbill-racp *{box-sizing:border-box;margin:0;padding:0}

/* PARTNER STRIP */
.medbill-racp .partner-strip{background:#EEF0FF;border-bottom:1px solid rgba(115,134,255,.2);padding:10px 40px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.medbill-racp .partner-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#545267}
.medbill-racp .partner-divider{width:1px;height:16px;background:#D0CDD9}

/* HERO */
.medbill-racp .hero{background:#fff;padding:200px 40px 88px;border-bottom:1px solid #D0CDD9}
.medbill-racp .hero-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 400px;gap:64px;align-items:center}
.medbill-racp .hero-pill{display:inline-flex;align-items:center;gap:14px;padding:10px 22px;border-radius:999px;background:#EEF0FF;border:1px solid rgba(115,134,255,.3);margin-bottom:28px}
.medbill-racp .hero-pill img{height:40px}
.medbill-racp .hero-pill span{font-size:1.3em;font-weight:700;color:#7386FF}
.medbill-racp .hero h1{margin-bottom:20px; background: -webkit-linear-gradient(45deg, #D6DCFF, #7386FF);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.medbill-racp .hero h1 span{color:#FFFFFF; -webkit-text-fill-color: #ffffff;}
.medbill-racp .hero-p1{font-size:1.1em;color:#FFFFFF;line-height:1.7;margin-bottom:16px;max-width:560px}
.medbill-racp .hero-p2{font-size:1em;color:#FFFFFF;line-height:1.65;margin-bottom:36px;max-width:560px}
.medbill-racp .hero-cta{border:2px solid #7386ff;padding:16px 40px;border-radius:14px;border:none;background:#7386ff;color:#fff;font-size:17px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:10px;width:100%;justify-content:center}
.medbill-racp .hero-cta:hover{background:#ffffff;color:#7386ff;}

/* OFFER CARD */
.medbill-racp .offer-card{background:#F3F2F8;border:1px solid #D0CDD9;border-radius:20px;padding:32px}
.medbill-racp .offer-racp{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:24px}
.medbill-racp .offer-racp img{height:53px;margin-bottom:8px}
.medbill-racp .offer-racp .excl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#7386FF}
.medbill-racp .offer-pct{background:#7386FF;border-radius:12px;padding:22px;text-align:center;margin-bottom:20px}
.medbill-racp .offer-pct .num{font-size:52px;font-weight:700;color:#fff;letter-spacing:-.04em;line-height:1}
.medbill-racp .offer-pct .sub{font-size:14px;font-weight:600;color:rgba(255,255,255,.8);margin-top:4px}
.medbill-racp .offer-item{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.medbill-racp .offer-tick{width:20px;height:20px;border-radius:50%;background:#DCFCE7;border:1px solid #22C55E;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.medbill-racp .offer-item span{font-size:13px;font-weight:500;color:#141129}
.medbill-racp .offer-submit{width:100%;margin-top:8px;padding:13px;border-radius:10px;border:none;background:#7386FF;color:#fff;font-size:14px;font-weight:700;cursor:pointer;}
.medbill-racp .offer-submit:hover{background:#8596FF}
.medbill-racp .offer-fine{font-size:11px;color:#545267;text-align:center;margin-top:10px;line-height:1.2em;}

/* STATS */
.medbill-racp .stats{background:#fff;border-bottom:1px solid #D0CDD9;padding:28px 40px}
.medbill-racp .stats-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);gap:20px;text-align:center}
.medbill-racp .stat-val{font-size:26px;font-weight:700;color:#7386FF;letter-spacing:-.03em}
.medbill-racp .stat-lbl{font-size:12px;color:#545267;font-weight:500;margin-top:2px}

/* FIVE REASONS */
.medbill-racp .reasons{background:#F3F2F8;padding:72px 40px;border-top:1px solid #D0CDD9}
.medbill-racp .section-eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#7386FF;margin-bottom:4px}
.medbill-racp .section-bar{display:flex;gap:20px;align-items:center;margin-bottom:48px}
.medbill-racp .section-bar-line{width:3px;height:40px;background:#7386FF;border-radius:2px;flex-shrink:0}
.medbill-racp .section-bar h2{font-size:36px;font-weight:700;color:#141129;letter-spacing:-.02em;line-height:1.15}
.medbill-racp .reason-list{display:flex;flex-direction:column;gap:12px;max-width:1200px;margin:0 auto}
.medbill-racp .reason-item{display:grid;grid-template-columns:48px 1fr;gap:20px;align-items:flex-start;background:#fff;border:1px solid #D0CDD9;border-radius:12px;padding:20px 24px}
.medbill-racp .reason-icon{width:48px;height:48px;border-radius:12px;background:#EEF0FF;display:flex;align-items:center;justify-content:center;flex-shrink:0;display:none;}
.medbill-racp .reason-num{font-size:13px;font-weight:700;color:#7386FF;margin-bottom:4px}
.medbill-racp .reason-title{font-size:1.2em; line-height: 1.15em; font-weight:700;color:#141129;margin-bottom:6px}
.medbill-racp .reason-body{font-size:13px;color:#545267;line-height:1.65}

/* PARTNERSHIP */
.medbill-racp .partnership{background:#fff;padding:72px 40px;border-top:1px solid #D0CDD9}
.medbill-racp .partner-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;max-width:1200px;margin:0 auto}
.medbill-racp .partner-card{background:#F3F2F8;border:1px solid #D0CDD9;border-radius:14px;padding:24px 22px}
.medbill-racp .partner-card-icon{width:40px;height:40px;border-radius:10px;background:#EEF0FF;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.medbill-racp .partner-card h3{font-size:1.2em;font-weight:700;color:#141129;margin-bottom:10px}
.medbill-racp .partner-card p{font-size:1em;color:#545267;line-height:1.65}

/* CLIENTS */
.medbill-racp .clients{background:#F3F2F8;padding:60px 40px;border-top:1px solid #D0CDD9;border-bottom:1px solid #D0CDD9}
.medbill-racp .clients-inner{max-width:1200px;margin:0 auto}
.medbill-racp .clients h2{font-size:24px;font-weight:700;color:#141129;letter-spacing:-.02em;text-align:center;margin-bottom:8px}
.medbill-racp .clients-sub{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#545267;text-align:center;margin-bottom:36px}
.medbill-racp .clients-list{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.medbill-racp .client-tag{padding:14px 24px;border-radius:10px;background:#fff;border:1px solid #D0CDD9;font-size:13px;font-weight:600;color:#141129}

/* CTA */
.medbill-racp .cta-section{background:#fff;padding:80px 40px;border-top:1px solid #D0CDD9}
.medbill-racp .cta-inner{max-width:680px;margin:0 auto;text-align:center}
.medbill-racp .cta-racp{height:100px;margin:0 auto 8px;display:block}
.medbill-racp .cta-preferred{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#545267;margin-bottom:24px}
.medbill-racp .cta-inner h2{font-size:40px;font-weight:700;color:#141129;letter-spacing:-.03em;line-height:1.1;margin-bottom:16px}
.medbill-racp .cta-inner p{font-size:16px;color:#545267;line-height:1.65;margin-bottom:36px}
.medbill-racp .cta-submit{padding:14px 32px;border-radius:10px;border:none;background:#7386FF;color:#fff;font-size:15px;font-weight:700;cursor:pointer;}
.medbill-racp .cta-submit:hover{background:#8596FF}
.medbill-racp .cta-fine{font-size:12px;color:#545267;margin-top:16px}


.medbill-racp section.inner_.trusted_logos{background-color:#141129;padding:50px 40px 60px}
.medbill-racp section.inner_.trusted_logos h2{font-size:32px;text-align:center;font-weight:bold;line-height:58px;color:#fff;margin-bottom:30px}
.medbill-racp section.inner_.trusted_logos #trusted-logo{display:flex;align-items:center;align-content:center;justify-content:space-between;flex-wrap:wrap;gap:20px}
.medbill-racp .logo-section img{width:auto;height:50px}
.medbill-racp .azuri-container {
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    padding: 0; }

/* MODAL */
.medbill-racp-modal{display:none;position:fixed;inset:0;z-index:9999;background:rgba(20,17,41,.65);backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:40px}
.medbill-racp-modal.open{display:flex}
.medbill-racp-modal .modal-box{background:#fff;border-radius:20px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(20,17,41,.2);padding:40px;position:relative}
.medbill-racp-modal .modal-box .gfield--type-hidden {margin:0; padding:0; display:none;}
.medbill-racp-modal .modal-close{position:absolute;color:#141129;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:1.5px solid #ffffff;background:#fff;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;}
.medbill-racp-modal .modal-header{margin-bottom:24px; text-align:center;}
.medbill-racp-modal .modal-header img{height:75px;width:auto}
.medbill-racp-modal .modal-header .mh-label{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#7386FF;margin-bottom:2px}
.medbill-racp-modal .modal-header .mh-title{font-size:2em;font-weight:700;color:#141129}
.medbill-racp-modal .modal-banner{background:#EEF0FF;border:1px solid rgba(115,134,255,.3);border-radius:10px;padding:12px 16px;margin-bottom:24px;display:flex;align-items:center;gap:12px}
.medbill-racp-modal .modal-banner .pct{font-size:28px;font-weight:700;color:#7386FF;letter-spacing:-.03em;line-height:1}
.medbill-racp-modal .modal-banner .txt{font-size:13px;color:#141129;line-height:1.5}
/* Gravity Forms — scoped inside modal */
.medbill-racp-modal .gform_wrapper{margin:0}
.medbill-racp-modal .gform_fields{display:flex;flex-direction:column;gap:0}
.medbill-racp-modal .gfield{margin-bottom:0px}
.medbill-racp-modal .gfield_label{display:block;font-size:12px;font-weight:600;color:#141129;margin-bottom:5px}
.medbill-racp-modal .gfield_required{color:#7386FF;margin-left:2px}
.medbill-racp-modal .ginput_container input,
.medbill-racp-modal .ginput_container select,
.medbill-racp-modal .ginput_container textarea{width:100%;padding:10px 12px;border:1.5px solid #D0CDD9;border-radius:8px;font-size:14px;color:#141129;outline:none;background:#fff}
.medbill-racp-modal .ginput_container input:focus,
.medbill-racp-modal .ginput_container select:focus,
.medbill-racp-modal .ginput_container textarea:focus{border-color:#7386FF;box-shadow:0 0 0 3px rgba(115,134,255,.15)}
.medbill-racp-modal .gform_footer,
.medbill-racp-modal .gform_page_footer{margin-top:4px}
.medbill-racp-modal .gform_button{width:100%;padding:14px;border-radius:10px;border:none;background:#7386FF;color:#fff;font-size:15px;font-weight:700;cursor:pointer;}
.medbill-racp-modal .gform_button:hover{background:#8596FF}
.medbill-racp-modal .gfield_validation_message,
.medbill-racp-modal .validation_message{font-size:11px;color:#DC2626;margin-top:4px}
.medbill-racp-modal .gform_confirmation_message{font-size:14px;color:#141129;text-align:center;padding:16px 0}
/* Aligned to a.btn.first's sitewide primary-button treatment - same
   feature-colour background/hover, radius, weight, size and padding -
   instead of its own hardcoded colours and invert-to-white hover. */
.gfield--type-submit .gform-button {border:none !important;padding:12px 35px!important;border-radius:14px!important;background:var(--feature-color, #7386ff) !important;color:#fff!important;font-size:18px!important;font-weight:bold!important;line-height:1.15!important;cursor:pointer!important;display:inline-flex!important;align-items:center!important;gap:10px!important;width:100%!important;justify-content:center !important;}
.gfield--type-submit .gform-button:hover{background:var(--feature-color-hover, #8596ff) !important;}


.medbill-racp-modal .gfield--type-handlfree_utm_medium, .medbill-racp-modal .gfield--type-handlfree_utm_campaign, .medbill-racp-modal .gfield--type-handlfree_utm_term, .medbill-racp-modal .gfield--type-handlfree_utm_content, .medbill-racp-modal .gfield--type-handlfree_utm_gclid {display:none;}

/* FONT */
.medbill-racp,
.medbill-racp-modal{color:#141129}

/* RESPONSIVE */
@media(max-width:768px){
  .medbill-racp .partner-strip{padding:10px 20px}
  .medbill-racp .hero{padding:120px 20px 56px}
  .medbill-racp .hero-inner{grid-template-columns:1fr;gap:36px}
  .medbill-racp .hero h1{font-size:30px}
  .medbill-racp .stats{padding:24px 20px}
  .medbill-racp .stats-inner{grid-template-columns:repeat(3,1fr);gap:16px}
  .medbill-racp .reasons,
  .medbill-racp .partnership,
  .medbill-racp .clients,
  .medbill-racp .cta-section{padding-left:20px;padding-right:20px}
  .medbill-racp .partner-grid{grid-template-columns:1fr}
  .medbill-racp .reason-item{grid-template-columns:1fr}
  .medbill-racp .reason-icon{margin-bottom:8px}
  .medbill-racp-modal .modal-box{padding:28px 20px}
  .medbill-racp-modal .form-row{grid-template-columns:1fr}
  .medbill-racp .partner-card h3 {font-size: 18px;}
  .medbill-racp .partner-card p {font-size:15px;}
}
@media(min-width:768px){
  .medbill-racp .reason-list{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
}
@media(min-width:1024px){
  .medbill-racp .reason-list{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:12px;
  }
  .medbill-racp .reason-item{
    grid-template-columns:1fr;
  }
  .medbill-racp .reason-body{
    display:none;
  }
  section.inner_.content_cards .content_cards_grid {
    gap: 0;
  }
}

.widget .btn.first {
	font-size: 16px;
	border-radius: 8px;
	padding: 12px 35px;
	margin-left: 20px;
}

body.page-template-template-flexible-content .site.grid-container {
  max-width: 100%;
}

section.inner_.left_right_content_section ul.ul_li.bluedot {
  font-size: 16px;
}

.medbill-sections > div:not(.inner_page_header) .text-box > *:last-child {
  margin-bottom: 0 !important;
}

ol, ul {
  margin: 0 0 .5em 1em;
}
li::marker {
  color: #7386ff;
}
/* ============================================================
   Sitewide header (inc/header/)
   ============================================================

   Scoped entirely under .medbill_header, which is why this block can sit
   alongside the older "header#masthead" rules further up without either
   reaching the other - see medbill_construct_header() in functions.php for
   why the new markup drops that id. When QuadMenu is retired, those rules
   and this note go with it.

   Row heights come from --medbill-utility-bar-height / --medbill-nav-height
   at the top of this file, which the Flexible Content template's first
   section also reads for its clearance padding, so the header can't change
   height without the page below it following. */
.medbill_header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  font-family: 'DM Sans', sans-serif;
}
.admin-bar .medbill_header {
  top: 32px;
}
@media only screen and (max-width: 782px) {
  /* WordPress's admin bar is 46px below 782px, not 32px. */
  .admin-bar .medbill_header {
    top: 46px;
  }
}

/* ---------- Utility bar ---------- */

.medbill_utility_bar {
  background-color: var(--medbill-dark);
  height: var(--medbill-utility-bar-height);
  /* The bar doesn't slide away on scroll, it collapses to nothing: animating
     the height (rather than translating the whole header up) keeps the nav
     row pinned to the top of the viewport throughout, so nothing under the
     cursor moves. The two return-visitor buttons survive the collapse as a
     single icon button in the nav row - see .medbill_utility_compact. */
  overflow: hidden;
  transition: height 0.3s ease;
}
.medbill_header_collapsed .medbill_utility_bar {
  height: 0;
}
.medbill_utility_inner {
  max-width: var(--medbill-container);
  height: var(--medbill-utility-bar-height);
  margin: 0 auto;
  padding: 0 var(--medbill-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.medbill_utility_phone {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--medbill-white);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}
.medbill_utility_phone:hover {
  color: var(--medbill-blue-300);
}
.medbill_utility_actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.medbill_utility_label {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--medbill-white);
  white-space: nowrap;
}
.medbill_utility_button {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 5px 15px 5px 11px;
  border-radius: 9999px;
  border: 2px solid transparent;
  font-size: 13.5px;
  font-weight: 600;
  white-space: nowrap;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
/* Both wordings are in the markup and CSS picks one - see
   medbill_get_responsive_label() in functions.php for why the choice can't
   be made on the server. The short one is swapped in at the same 1023px
   breakpoint the rest of the header changes at, further down this file. */
.medbill_label_short {
  display: none;
}
.medbill_utility_button .medbill_icon {
  font-size: 15px;
  flex-shrink: 0;
}
.medbill_utility_button_dark {
  background-color: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.28);
  color: var(--medbill-white);
}
.medbill_utility_button_dark .medbill_icon {
  color: var(--medbill-blue-300);
}
.medbill_utility_button_dark:hover {
  background-color: rgba(255, 255, 255, 0.14);
  border-color: var(--medbill-blue-300);
  color: var(--medbill-white);
}
.medbill_utility_button_light {
  background-color: var(--medbill-light);
  border-color: var(--medbill-navy-200);
  color: var(--medbill-dark);
}
.medbill_utility_button_light .medbill_icon {
  color: var(--medbill-navy-600);
}
.medbill_utility_button_light:hover {
  background-color: var(--medbill-white);
  border-color: var(--medbill-blue-300);
  color: var(--medbill-dark);
}

/* ---------- Nav row ---------- */

.medbill_header_bar {
  position: relative;
  background-color: var(--medbill-white);
  border-bottom: 1px solid var(--medbill-navy-200);
}
.medbill_header_inner {
  max-width: var(--medbill-container);
  height: var(--medbill-nav-height);
  margin: 0 auto;
  padding: 0 var(--medbill-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.medbill_header_logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 0;
}
.medbill_header_logo img {
  height: 26px;
  width: auto;
}
.medbill_nav {
  display: flex;
  align-items: center;
}
/* One rule for both the <a> items and the <button> triggers: an item with a
   mega panel is a button because it opens something rather than navigating,
   but the two have to be indistinguishable in the bar.

   Weight is 400, not the design file's 500. Only two real DM Sans cuts load
   on this site - GeneratePress's self-hosted Regular (400) and Bold (700),
   preloaded in header.php - because Perfmatters has Google Fonts disabled,
   which silently drops the variable 100..1000 face
   medbill_enqueue_google_fonts() in functions.php tries to add. Under CSS
   font matching a requested 500 then resolves down to 400 and a 600 up to
   700, so "500" here was rendering as plain Regular anyway while reading as
   a deliberate Medium in the stylesheet. Stating 400 makes what actually
   renders match what this file says. Restoring the variable font is what
   would make the design's 500/600 weights real, here and in the h2-h6 rules
   near the top of this file, which have the same problem. */
.medbill_nav_item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 10px 9px;
  border: 0;
  border-radius: 8px;
  background-color: transparent;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--medbill-dark);
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.medbill_nav_item:hover,
.medbill_nav_trigger[aria-expanded='true'] {
  background-color: var(--medbill-blue-100);
  color: var(--medbill-dark);
}
.medbill_nav_item .medbill_icon {
  font-size: 14px;
  opacity: 0.6;
  transition: transform 0.2s ease;
}
.medbill_nav_trigger[aria-expanded='true'] .medbill_icon {
  transform: rotate(180deg);
}
/* The section the visitor is currently in. Inset rather than a border so it
   doesn't add to the item's height and shift the row. */
.medbill_nav_item_current {
  box-shadow: inset 0 -2px 0 var(--medbill-primary);
  border-radius: 8px 8px 0 0;
}
.medbill_header_cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  flex-shrink: 0;
  padding: 13px 24px;
  border-radius: 9999px;
  background-color: var(--medbill-primary);
  color: var(--medbill-white);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  transition: background-color 0.2s ease;
}
.medbill_header_cta:hover {
  background-color: var(--medbill-blue-400);
  color: var(--medbill-white);
}
.medbill_header_cta .medbill_icon {
  font-size: 17px;
}

/* ---------- Mega panels ---------- */

.medbill_panel {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background-color: var(--medbill-white);
  border-top: 1px solid var(--medbill-navy-200);
  border-bottom: 1px solid var(--medbill-navy-200);
  box-shadow: 0 24px 48px -16px rgba(20, 17, 41, 0.22);
}
.medbill_panel_grid {
  max-width: var(--medbill-container);
  margin: 0 auto;
  padding: 28px var(--medbill-gutter) 24px;
  display: grid;
  gap: 16px;
}
.medbill_panel_cols_3 .medbill_panel_grid {
  grid-template-columns: repeat(3, 1fr);
}
.medbill_panel_cols_4 .medbill_panel_grid {
  grid-template-columns: repeat(4, 1fr);
}
/* Same card shape as Content - Icon Tiles' .icon_tile - icon above the
   heading, contents flush left, card filling the full height of its grid
   row so every card in a panel lines up - at the smaller radius and padding
   a nav panel needs. Stacked rather than icon-beside-text so all four
   panels read identically, including Services, which is the only one the
   design laid out horizontally. */
.medbill_panel_entry {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  height: 100%;
  padding: 18px;
  border: 1px solid var(--medbill-navy-200);
  border-radius: 12px;
  color: inherit;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.medbill_panel_entry:hover {
  background-color: var(--medbill-blue-100);
  border-color: var(--medbill-blue-300);
  color: inherit;
}
/* .icon_tile_box and .icon_tile_mask are shared with Content - Icon Tiles
   and Content - Columns (see medbill_render_tile_icon() in functions.php),
   including the Feature Color tint and mask - only the box's size differs
   here, since a nav panel's icon sits beside one line of text rather than
   above a card. */
.medbill_panel_icon {
  width: auto;
  height: 38px;
  padding: 7px;
}
.medbill_panel_icon img,
.medbill_panel_icon .icon_tile_mask {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.medbill_panel_entry_body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.medbill_panel_entry_title {
  font-size: 15px;
  font-weight: 600;
  color: var(--medbill-dark);
}
.medbill_panel_entry_text {
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--medbill-navy-600);
}
/* The strip's background spans the full viewport like the panel itself,
   while .medbill_panel_footer_inner holds its contents to the same measure
   and gutter as the grid above it. */
.medbill_panel_footer {
  background-color: var(--medbill-light);
  border-top: 1px solid var(--medbill-navy-200);
}
.medbill_panel_footer_inner {
  max-width: var(--medbill-container);
  margin: 0 auto;
  padding: 16px var(--medbill-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.medbill_panel_note {
  font-size: 14px;
  color: var(--medbill-navy-600);
}
.medbill_panel_cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--medbill-primary);
}
.medbill_panel_cta:hover {
  color: var(--medbill-blue-400);
}

/* ---------- Mobile ---------- */

.medbill_drawer_toggle {
  display: none;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--medbill-navy-200);
  border-radius: 8px;
  background-color: var(--medbill-white);
  color: var(--medbill-dark);
  font-size: 22px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.medbill_drawer_toggle_open {
  display: flex;
  align-items: center;
}
.medbill_drawer_toggle .medbill_drawer_toggle_close,
.medbill_drawer_toggle[aria-expanded='true'] .medbill_drawer_toggle_open {
  display: none;
}
.medbill_drawer_toggle[aria-expanded='true'] .medbill_drawer_toggle_close {
  display: inline-flex;
}
.medbill_drawer {
  display: none;
}

@media only screen and (max-width: 1199px) {
  /* Three different constraints are in play below desktop and none of them
     share a breakpoint.

     THIS BLOCK (1199px) is the nav row becoming the drawer, because eight
     nav items plus a logo and a CTA stop fitting across the row here. The
     mega panels go with it, since they have nothing left to open from.

     The NESTED 1023px block below is the utility bar tightening up and the
     header getting shorter. That is a much narrower constraint - the bar's
     three items need roughly 700px - so a large tablet keeps the full,
     audience-naming button wording it has room for.

     The NESTED 767px block further down is everything that only a phone
     forces: the short labels and the squeeze that goes with them.

     Keeping them separate is what stops a 1400px laptop being handed a
     layout designed for a 360px bar. */

  /* Panels have no room to open once the nav itself is gone. */
  .medbill_nav,
  .medbill_panel {
    display: none;
  }
  .medbill_drawer_toggle {
    display: inline-flex;
  }
  /* With the nav gone, .medbill_header_inner's space-between would strand
     the CTA in the middle of the row; this keeps it and the toggle together
     on the right, against the logo on the left. */
  .medbill_header_cta {
    margin-left: auto;
  }

  @media only screen and (max-width: 1023px) {
    /* "Existing client or patient?" needs roughly 910px of bar to sit
       beside the phone number and both buttons, so it goes here. It's the
       safest of the four to lose: the buttons name their own audience in
       their labels. */
    .medbill_utility_label {
      display: none;
    }
    /* Padding comes from --medbill-gutter, which is already 25px here and
       matches the page content; only the gap is specific to this bar. */
    .medbill_utility_inner {
      gap: 16px;
    }
    /* The phone number never grows or shrinks - it's a fixed string, and
       letting it flex would only take room from the two buttons. */
    .medbill_utility_phone {
      flex: 0 0 auto;
      font-size: 13px;
    }
    .medbill_utility_button {
      padding: 6px 12px;
      font-size: 13px;
    }
    .medbill_utility_button .medbill_icon {
      font-size: 13px;
    }
    .medbill_header_inner {
      gap: 12px;
    }
    .medbill_header_logo img {
      height: 22px;
    }
    .medbill_header_cta {
      padding: 10px 16px;
      font-size: 14px;
    }
  }
  .medbill_drawer {
    display: block;
    /* 100vh is the LARGE viewport on a phone: it measures as though the
       browser's address bar were hidden, so the bottom of a full-length
       drawer sat behind that bar with no way to reach it. The drawer's own
       overflow only starts past 100vh, and body.medbill_drawer_open has the
       page behind it locked, so nothing could scroll. 100dvh is the live
       viewport and shrinks as the chrome appears. The vh line stays as the
       fallback for browsers without dvh (Safari before 15.4, Chrome before
       108). */
    max-height: calc(100vh - var(--medbill-header-height));
    max-height: calc(100dvh - var(--medbill-header-height));
    overflow-y: auto;
    /* Stops a gesture that reaches the end of the drawer from chaining to
       the locked page behind it, which on iOS reads as the whole overlay
       rubber-banding rather than the drawer scrolling. */
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 8px 8px 20px;
    background-color: var(--medbill-white);
    border-bottom: 1px solid var(--medbill-navy-200);
  }
  /* Once the page has scrolled, the utility bar has collapsed to nothing, so
     the drawer has that much more room. Without this it stays short by the
     bar's height and leaves dead space below it. */
  .medbill_header_collapsed .medbill_drawer {
    max-height: calc(100vh - var(--medbill-nav-height));
    max-height: calc(100dvh - var(--medbill-nav-height));
  }
  .medbill_drawer[hidden] {
    display: none;
  }
  /* Locks the page behind an open drawer so a scroll gesture inside it
     doesn't carry on scrolling the page underneath. */
  body.medbill_drawer_open {
    overflow: hidden;
  }
  .medbill_drawer_nav {
    display: flex;
    flex-direction: column;
  }
  /* 52px minimum, comfortably above the 44px touch target minimum. */
  .medbill_drawer_link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 52px;
    padding: 12px;
    border: 0;
    border-bottom: 1px solid var(--medbill-navy-200);
    background-color: transparent;
    font-family: inherit;
    font-size: 17px;
    font-weight: 600;
    text-align: left;
    color: var(--medbill-dark);
    cursor: pointer;
    /* Suppresses the browser's own grey tap flash, which would otherwise
       fire alongside the :active fill below and read as two overlapping
       highlights on the same press. */
    -webkit-tap-highlight-color: transparent;
  }
  /* :active, not :hover. The drawer only exists below 1023px, which is
     almost entirely touch, and on touch browsers :hover latches: it applies
     on tap and stays applied until something else is tapped, so the last
     row touched stays highlighted while the drawer closes and is still
     highlighted when the visitor comes back. :active is press-and-release,
     so it can't strand a row in the wrong state. Real hover is handled
     separately below for the narrow-window-on-a-laptop case. */
  .medbill_drawer_link:active {
    background-color: var(--medbill-blue-100);
  }
  .medbill_drawer_link .medbill_icon {
    font-size: 19px;
    opacity: 0.5;
    transition: transform 0.2s ease;
  }
  .medbill_drawer_trigger[aria-expanded='true'] .medbill_icon {
    transform: rotate(180deg);
  }
  .medbill_drawer_sublist {
    display: flex;
    flex-direction: column;
    background-color: var(--medbill-light);
  }
  .medbill_drawer_sublist[hidden] {
    display: none;
  }
  .medbill_drawer_sublink {
    min-height: 48px;
    display: flex;
    align-items: center;
    padding: 10px 12px 10px 24px;
    border-bottom: 1px solid var(--medbill-navy-200);
    font-size: 15px;
    color: var(--medbill-navy-600);
    -webkit-tap-highlight-color: transparent;
  }
  /* Sub rows sit on the lavender sublist rather than white, where the
     blue-100 fill the top level rows use would barely separate from the
     background - blue-200 is the next step up the same ramp and is already
     this site's established dropdown fill. */
  .medbill_drawer_sublink:active {
    background-color: var(--medbill-blue-200);
    color: var(--medbill-dark);
  }
  .medbill_drawer_doors {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px 12px 0;
  }
  .medbill_drawer_door {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 15px 20px;
    border: 1.5px solid transparent;
    border-radius: 9999px;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    -webkit-tap-highlight-color: transparent;
  }
  .medbill_drawer_door_primary {
    background-color: var(--medbill-primary);
    color: var(--medbill-white);
  }
  /* Each door's pressed state is the same shift its desktop counterpart
     makes on hover, so the three journeys stay recognisable across
     breakpoints: the primary CTA lightens one step down the blue ramp, and
     both outlined pills take the blue-300 border. */
  .medbill_drawer_door_primary:active {
    background-color: var(--medbill-blue-400);
    color: var(--medbill-white);
  }
  .medbill_drawer_door_dark {
    background-color: var(--medbill-dark);
    border-color: var(--medbill-dark);
    color: var(--medbill-white);
  }
  .medbill_drawer_door_dark:active {
    background-color: var(--medbill-navy-800);
    border-color: var(--medbill-blue-300);
    color: var(--medbill-white);
  }
  .medbill_drawer_door_dark .medbill_icon {
    color: var(--medbill-blue-300);
  }
  .medbill_drawer_door_light {
    background-color: var(--medbill-light);
    border-color: var(--medbill-navy-200);
    color: var(--medbill-dark);
  }
  .medbill_drawer_door_light:active {
    background-color: var(--medbill-white);
    border-color: var(--medbill-blue-300);
    color: var(--medbill-dark);
  }
  .medbill_drawer_toggle:active {
    background-color: var(--medbill-blue-100);
    border-color: var(--medbill-blue-300);
  }

  /* Phones only. Everything here exists because of a 360-390px bar, and
     applying any of it to a tablet would shorten labels and stretch buttons
     that had room to spare - see the note at the top of this block. */
  @media only screen and (max-width: 767px) {
    /* Swap every header button to its short wording. */
    .medbill_label_full {
      display: none;
    }
    .medbill_label_short {
      display: inline;
    }
    .medbill_utility_inner {
      padding: 0 12px;
      gap: 8px;
      /* Default is space-between, which is right at any width where the
         phone number and the button pair can sit at opposite ends. Here the
         three share one cramped row instead, so they're packed from the
         left and the buttons divide what's left between them. */
      justify-content: flex-start;
    }
    .medbill_utility_phone {
      font-size: 12.5px;
    }
    /* The two buttons share whatever the phone number leaves. Without
       min-width: 0 a flex item refuses to shrink below its content, which
       is what let them run past the right edge and be clipped by
       .medbill_utility_bar's overflow: hidden. */
    .medbill_utility_actions {
      flex: 1 1 auto;
      min-width: 0;
      gap: 8px;
    }
    .medbill_utility_button {
      font-size: 12.5px;
      flex: 1 1 0;
      min-width: 0;
      justify-content: center;
      gap: 6px;
    }
    /* Backstop only. With the short labels in place nothing should reach
       it, but it means an over-long label added later degrades to an
       ellipsis inside the button instead of silently disappearing
       off-screen. */
    .medbill_utility_button_text {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    /* The calendar icon goes and the words stay: the label is what makes
       this the obvious primary action, and the design's mobile artboard
       shows it unadorned. The words are already shortened to "Book a
       review" by the swap above. A tablet keeps both. */
    .medbill_header_cta .medbill_icon {
      display: none;
    }

    /* Even at the short wording the bar is only just wide enough on a 390px
       phone, and doesn't fit a 360px one, which is a lot of Android. Below
       that the two button icons go: the lock and card are useful shorthand
       but the words are what actually route people, so the icons are what
       can be spared. Recovers roughly 40px, which clears 360px and 320px. */
    @media only screen and (max-width: 380px) {
      .medbill_utility_button .medbill_icon {
        display: none;
      }
      .medbill_utility_button {
        padding: 6px 10px;
      }
      .medbill_utility_inner {
        gap: 24px;
        padding: 0 10px;
      }
    }
  }

  /* Below 1023px is not exclusively touch - a narrow browser window on a
     laptop lands here too - so the same states are offered as true hover
     wherever a fine pointer actually exists. Gated on (hover: hover) so
     none of it reaches a touchscreen, which is the whole point of using
     :active above. Mirrors the matchMedia test assets/js/header.js already
     uses to decide whether the desktop panels open on hover.
     The transition lives here rather than on the base rules because an
     eased fill makes a tap feel like it lagged; a press should land
     instantly. */
  @media (hover: hover) and (pointer: fine) {
    .medbill_drawer_link,
    .medbill_drawer_sublink,
    .medbill_drawer_door,
    .medbill_drawer_toggle {
      transition: background-color 0.2s ease, border-color 0.2s ease,
        color 0.2s ease;
    }
    .medbill_drawer_link:hover,
    .medbill_drawer_link:focus {
      background-color: var(--medbill-blue-100);
      color: var(--medbill-primary);
    }
    
    .medbill_drawer_sublink:hover {
      background-color: var(--medbill-blue-200);
      color: var(--medbill-dark);
    }
    .medbill_drawer_door_primary:hover {
      background-color: var(--medbill-blue-400);
      color: var(--medbill-white);
    }
    .medbill_drawer_door_dark:hover {
      background-color: var(--medbill-navy-800);
      border-color: var(--medbill-blue-300);
      color: var(--medbill-white);
    }
    .medbill_drawer_door_light:hover {
      background-color: var(--medbill-white);
      border-color: var(--medbill-blue-300);
      color: var(--medbill-dark);
    }
    .medbill_drawer_toggle:hover {
      background-color: var(--medbill-blue-100);
      border-color: var(--medbill-blue-300);
    }
  }
}

/* ============================================================
   Sitewide footer (inc/footer/)
   ============================================================

   Scoped under .medbill_footer so it can't reach the GeneratePress footer
   markup it replaces (.site-footer / #footer-widgets / .site-info), whose
   rules are still in this file and still apply whenever the footer-menu
   location is empty - see medbill_has_custom_footer() in functions.php.

   Three bands: the three doors, the link grid, the legal bar. The stats
   strip in the design file is deliberately absent, along with the ABN. */
.medbill_footer {
  background-color: var(--medbill-dark);
  color: var(--medbill-navy-200);
}
/* Same measure and gutter as the header's .medbill_header_inner, so the
   two line up down the page. */
.medbill_footer_inner {
  max-width: var(--medbill-container);
  margin: 0 auto;
  padding: 0 var(--medbill-gutter);
}
/* The small blue uppercase label above each column in the grid. The doors
   band's own heading is not this - it uses the sitewide .eyebrow_badge
   pill, the same one that sits above every flexible layout's heading. */
.medbill_footer_column_heading {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--medbill-blue-300);
}

/* ---------- Band 1: the three doors ---------- */

.medbill_footer_doors {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  padding: 40px 0;
}
/* .eyebrow_badge is inline-table, so it needs a block context of its own to
   sit on its own line above the grid. Its colours come from the
   --feature-color-* fallbacks (a pale lavender fill with primary-blue
   text), which reads as a light chip against the navy footer without
   needing a dark variant. */
.medbill_footer_doors .eyebrow_badge {
  display: table;
  margin: 0 auto 18px auto;
}
.medbill_footer_doors_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
/* Same card shape as Content - Icon Tiles' .icon_tile: 16px radius, 26px
   padding, contents flush left, filling the full height of its grid row so
   all three line up. Each card keeps its own colour scheme below; only the
   geometry is shared. */
.medbill_footer_door {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  height: 100%;
  padding: 26px;
  border: 1px solid transparent;
  border-radius: 16px;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
/* Inherits the flex centring, border-radius and shrink behaviour from
   .icon_tile_box; only the size and the per-card fill below are different.
   The 8px here plus the card's own 8px gap makes the 16px that .icon_tile
   puts under its icon box, so the two read at the same rhythm. */
.medbill_footer_door_icon {
  width: 48px;
  height: 48px;
  margin-bottom: 8px;
  font-size: 22px;
  line-height: 1;
}
.medbill_footer_door_title {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.25;
}
.medbill_footer_door_text {
  font-size: 14px;
  line-height: 1.5;
}
/* Pushed to the bottom so the action lines up across all three cards
   regardless of how long each description runs. */
.medbill_footer_door_action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 12px;
  font-size: 14px;
  font-weight: 600;
}
.medbill_footer_door_action .medbill_icon {
  font-size: 15px;
}
/* Each card's icon box takes a fill lifted from its own card colour rather
   than .icon_tile_box's default lavender, which only reads correctly on a
   light background and would disappear under a white icon on the blue card.
   The border on each is what .icon_tile has as a flat 1px navy-200,
   restated per scheme so it stays visible on blue and navy too. */
.medbill_footer_door_primary {
  background-color: var(--medbill-primary);
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--medbill-white);
}
.medbill_footer_door_primary:hover {
  background-color: var(--medbill-blue-400);
  border-color: rgba(255, 255, 255, 0.4);
  color: var(--medbill-white);
}
.medbill_footer_door_primary .medbill_footer_door_icon {
  background-color: rgba(255, 255, 255, 0.18);
  color: var(--medbill-white);
}
.medbill_footer_door_primary .medbill_footer_door_text {
  color: rgba(255, 255, 255, 0.85);
}
/* --medbill-navy-800 is the "raised surface on a navy background" step, the
   same one the mobile drawer's dark door uses when pressed. */
.medbill_footer_door_dark {
  background-color: var(--medbill-navy-800);
  border-color: rgba(255, 255, 255, 0.28);
  color: var(--medbill-white);
}
.medbill_footer_door_dark:hover {
  border-color: var(--medbill-blue-300);
  color: var(--medbill-white);
}
.medbill_footer_door_dark .medbill_footer_door_icon,
.medbill_footer_door_dark .medbill_footer_door_action {
  color: var(--medbill-blue-300);
}
.medbill_footer_door_dark .medbill_footer_door_icon {
  background-color: rgba(255, 255, 255, 0.08);
}
.medbill_footer_door_dark .medbill_footer_door_text {
  color: var(--medbill-navy-200);
}
.medbill_footer_door_light {
  background-color: var(--medbill-light);
  border-color: var(--medbill-navy-200);
  color: var(--medbill-dark);
}
.medbill_footer_door_light:hover {
  background-color: var(--medbill-white);
  border-color: var(--medbill-blue-300);
  color: var(--medbill-dark);
}
.medbill_footer_door_light .medbill_footer_door_icon,
.medbill_footer_door_light .medbill_footer_door_text {
  color: var(--medbill-navy-600);
}
/* White rather than .icon_tile_box's lavender default, which is this card's
   own background colour and would leave the box invisible. */
.medbill_footer_door_light .medbill_footer_door_icon {
  background-color: var(--medbill-white);
}
.medbill_footer_door_light:hover .medbill_footer_door_icon {
  background-color: var(--medbill-light);
}
.medbill_footer_door_light .medbill_footer_door_action {
  color: var(--medbill-primary);
}

/* ---------- Band 2: brand column and link grid ---------- */

.medbill_footer_links {
  padding: 52px 0 40px;
}
/* The brand column is fixed-ish; the link columns share what's left, so
   adding or removing a column in the Footer Menu widens or narrows them
   without this file needing to know how many there are. */
.medbill_footer_grid {
  display: grid;
  grid-template-columns: minmax(240px, 300px) repeat(auto-fit, minmax(150px, 1fr));
  gap: 40px;
}
.medbill_footer_brand {
  display: flex;
  flex-direction: column;
  gap: 18px;
  align-items: flex-start;
}
.medbill_footer_logo img {
  height: 26px;
  width: auto;
}
.medbill_footer_blurb {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--medbill-navy-200);
}
.medbill_footer_contact {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.medbill_footer_contact .medbill_icon {
  font-size: 16px;
  flex-shrink: 0;
  color: var(--medbill-blue-300);
}
.medbill_footer_phone,
.medbill_footer_email,
.medbill_footer_location {
  display: flex;
  align-items: center;
  gap: 8px;
}
.medbill_footer_phone {
  font-size: 17px;
  font-weight: 600;
  color: var(--medbill-white);
}
.medbill_footer_phone:hover {
  color: var(--medbill-blue-300);
}
.medbill_footer_email,
.medbill_footer_location {
  font-size: 14.5px;
  color: var(--medbill-navy-200);
}
.medbill_footer_email:hover {
  color: var(--medbill-white);
}
/* The location is a plain statement, not a link, so it aligns to the top of
   its icon rather than centring like the two above it when it wraps. */
.medbill_footer_location {
  align-items: flex-start;
}
.medbill_footer_location .medbill_icon {
  margin-top: 2px;
}
.medbill_footer_webapp_wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}
.medbill_footer_webapp {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 11px 22px 11px 18px;
  border: 2px solid rgba(255, 255, 255, 0.28);
  border-radius: 12px;
  background-color: var(--medbill-navy-800);
  color: var(--medbill-white);
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.medbill_footer_webapp:hover {
  border-color: var(--medbill-primary);
  color: var(--medbill-white);
}
.medbill_footer_webapp .medbill_icon {
  font-size: 26px;
  flex-shrink: 0;
  color: var(--medbill-primary);
}
.medbill_footer_webapp_label {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.medbill_footer_webapp_eyebrow {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--medbill-blue-300);
}
.medbill_footer_webapp_name {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -0.015em;
}
.medbill_footer_webapp_note {
  font-size: 13px;
  color: var(--medbill-navy-600);
}
.medbill_footer_column {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
/* A second heading inside the same column ("Who we service" under "Doctor
   solutions") needs space above it that the first one doesn't. */
.medbill_footer_column_subheading {
  margin-top: 10px;
}
.medbill_footer_link {
  font-size: 14.5px;
  color: var(--medbill-navy-200);
}
.medbill_footer_link:hover {
  color: var(--medbill-white);
}

/* ---------- Band 3: legal bar ---------- */

.medbill_footer_legal {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.medbill_footer_legal_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 24px;
  padding-top: 22px;
  padding-bottom: 32px;
}
.medbill_footer_copyright {
  font-size: 13px;
  color: var(--medbill-navy-600);
}
.medbill_footer_legal_links {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
}
.medbill_footer_legal_links a {
  font-size: 13px;
  color: var(--medbill-navy-600);
}
.medbill_footer_legal_links a:hover {
  color: var(--medbill-white);
}
/* Rendered by medbill_render_social_links() in functions.php, the same
   markup the GeneratePress footer widget used, under a different wrapper
   class so it can be laid out for this bar instead. */
.medbill_footer_social {
  display: flex;
  align-items: center;
  gap: 12px;
}
.medbill_footer_social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: var(--medbill-navy-800);
  color: var(--medbill-navy-200);
  transition: background-color 0.2s ease, color 0.2s ease;
}
.medbill_footer_social a:hover {
  background-color: var(--medbill-primary);
  color: var(--medbill-white);
}
.medbill_footer_social svg {
  width: 15px;
  height: 15px;
}

@media only screen and (max-width: 1023px) {
  /* The brand column goes full width above the link columns, then those
     pair up two by two.

     Two rather than an auto-fit track list: with four link columns, auto-fit
     resolves to three at this width and leaves the fourth stranded on a row
     of its own. Two gives a balanced 2x2 and pairs the columns sensibly by
     height - Services beside Products, then the tall Doctor solutions
     column (which carries the Who we service sub-heading and its four
     links) beside the short Company one. */
  .medbill_footer_grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }
  .medbill_footer_brand {
    grid-column: 1 / -1;
  }
}

/* Tablet only. The three door cards stay side by side, but at 768px that is
   about 228px each, and the headings they carry are the header's full
   audience-naming labels ("Client login (Doctors / Clinics)"), which wrap to
   four lines at the desktop size. Trimming the card rather than dropping to
   two columns avoids stranding the third card on its own row - with three
   cards, any count other than three or one leaves an orphan. Below 768px
   they go to one column each and the desktop sizes apply again, which is
   why this is bounded at both ends rather than cascading down. */
@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .medbill_footer_door {
    padding: 20px;
    gap: 6px;
  }
  .medbill_footer_door_title {
    font-size: 16px;
  }
  .medbill_footer_door_text {
    font-size: 13.5px;
  }
  .medbill_footer_door_icon {
    width: 40px;
    height: 40px;
    margin-bottom: 6px;
    font-size: 19px;
  }
}

@media only screen and (max-width: 767px) {
  /* One column each. The design has no mobile footer artboard; stacking is
     what lets GP Element 448's separate mobile accordion be retired rather
     than rebuilt, which is the "one footer, not two" note in the design. */
  .medbill_footer_doors_grid,
  .medbill_footer_grid {
    grid-template-columns: 1fr;
  }
  .medbill_footer_doors {
    padding: 32px 0;
  }
  .medbill_footer_links {
    padding: 36px 0 28px;
  }
  /* Stacked rather than left-aligned-and-wrapping. The bar holds three
     groups of very different widths, so space-between plus flex-wrap put
     them on one, two or three rows depending on the exact viewport and the
     length of the copyright line, with the gaps between them changing each
     time. Stacking makes it the same shape on every phone. */
  .medbill_footer_legal_inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 24px;
    padding-top: 20px;
  }
}
