@charset "utf-8";
/* =========================================================================
   mobile.css
   Mobile stylesheet for the CBC / Costco Quote site.
   Link AFTER theme.css / quoteResults.css, gated below 800px, e.g.:
       <link href="styles/mobile.css" rel="stylesheet"
             media="screen and (max-width: 799px)">
   Every rule is also wrapped in an @media query so the sheet is correct
   even if linked without the media attribute.

   Section 1 - responsive rules for the vertical plan tiles (<800px, down to
               390px) incl. 40-44px tap targets.
   Section 2 - existing sub-800px @media blocks copied over from theme.css.
   ========================================================================= */


/* =========================================================================
   SECTION 1 - Vertical plan tiles on phones
   ========================================================================= */
@media only screen and (max-width: 640px){

  /* One tile per row */
  .planTiles{ grid-template-columns:1fr; gap:1em; margin:0 0 1em; font-size:1.25em; }

  /* Badge */
  .planTileBadge--current{ font-size:1em; padding:.55em .95em; }
  .cqFeatTab{ padding:.45em .8em .45em .95em; gap:.5em; }
  .cqFeatLogo{ width:6.2em; height:1.65em; }
  .cqFeatText{ font-size:.95em; }

  /* Header */
  .planTileHead{ padding:.9em .95em 1em; }
  .planTileLogo img{ max-height:3.1em; max-width:13em; }
  .planTileName{ font-size:1.2em; }
  .planTileCarrierName{ font-size:1.4em; }
  .planTileTopMeta{ gap:.6em .9em; }
  .planTilePriceValue{ font-size:2em; }
  .tierBadge{ min-width:5em; font-size:.92em; }

  /* SmallGroups Executive "Costco Preferred" plan extras */
  .cqExecSave{ font-size:.95em; padding:.5em .95em; }
  .planTilePriceLabel--exec{ font-size:.82em; }
  .planTilePrice--exec .planTileOldPrice{ font-size:1em; }
  .planTilePriceNote{ padding:.55em .95em; font-size:.92em; }

  /* Add to Cart stays a big, full-width target */
  .planTileAdd{ font-size:1.15em; min-height:48px; margin:.1em .95em 1em; }

  /* Specs */
  .planTileSpecs{ grid-template-columns:1fr 1fr; gap:.75em 1em; padding:.85em .95em; }

  /* Grouped links need >=44px tap targets (point 3) */
  .planTileContrib{ padding:.6em .95em; font-size:1em; line-height:1.7; }
  .planTileContrib a{ display:inline-flex; align-items:center; min-height:40px; padding:.2em 0; }

  .planTileLinks{ padding:.5em .95em; gap:.25em .8em; font-size:1.02em; }
  .planTileLinks a{ min-height:44px; padding:.35em .15em; }

  /* Global Input Field need >=44px tap targets */
	input {min-height: 44px; margin-top:4px; margin-bottom:4px; padding-left:.5em;}	
	select {min-height: 40px; margin-top:4px; margin-bottom:4px;}
	
  /* Misc UI element adjustments */
	#calculateBTN{margin-top:1em;}	

	
  /* Footer: Compare + Plan Details, each an easy target */
  .planTileActions{ flex-wrap:wrap; gap:.6em 1em; padding:.8em .95em; }
  .planTileCompare{ min-height:44px; }
  .planTileCompare label{ padding:.35em 0; }
  .planTileCompare input[type="checkbox"]{ width:1.4em; height:1.4em; }
  .planTileDetails{ min-height:44px; }
}

/* Narrowest phones (~390px and below): stack specs, give footer items
   their own full-width rows so taps never overlap */
@media only screen and (max-width: 430px){
  .planTileSpecs{ grid-template-columns:1fr; gap:.65em; }
  .planTilePriceValue{ font-size:1.85em; }
  .planTileActions{ align-items:flex-start; gap:.4em; }
}


/* =========================================================================
   SECTION 2 - Existing sub-800px @media blocks copied from theme.css
   (verbatim, so the cascade is unchanged)
   ========================================================================= */

/* ---- copied from theme.css @media only screen and (max-width: 800px) ---- */
@media only screen and (max-width: 800px) {

    .headerRHLinksWrapper{
        display:none;
    }

    .hdrLinksMobile{
        display:flex;
        flex-wrap:nowrap;
        justify-content: flex-end;
    }



}

/* ---- copied from theme.css @media only screen and (max-width: 745px) ---- */
@media only screen and (max-width: 745px) {
.headerLogo{
	width: 7.8em;
	height: 3.4em;
	float: left;
	margin-top: 1.75em;
	background:url(images/header-logo.jpg) no-repeat;
	background-size:cover;
}
.headerLogoCostco{
	width: 7.5em;
	height: 2.25em;
	float: right;
	margin-top: 10px;
	margin-left:1em;
	margin-right:.5em;
	background:url(images/header-logo_costco.jpg) no-repeat;
	background-size:cover;
}
.headerWelcome{
	float: left;
	padding-left: 16px;
	margin-top:.64em;
    font-family: 'Costco Sans Micro', 'apple-system', 'BlinkMacSystemFont','Segoe UI', 'Roboto', sans-serif;
    font-weight: 600;
	font-size: 1.5em;
	font-weight: 600;
	line-height: 1.2em;
	color: #358DD9;
}

.blogTitle{
	font-size: 5.8em;
	line-height:2em;
	padding-left:2.5%;
}
.LargeGroupsHomeContentWrapper{
	height:auto;
	background-position: center top;
}

.LargeGroupsHomeContentWrapper2{
	height:auto;
	background-position: center top;
}	
	
.largeGroupHPHeroContent{
	width:90%;
}
.sideScroll{
	overflow-x: scroll;
	min-width: 360px;
	}
.compareTab{
	padding: .3em .5em;
}
}

/* ---- copied from theme.css + General @media only screen and (max-width: 640px) ---- */
@media only screen and (max-width: 640px) {
.planCard{
	width:95%;
	font-size: 1.25em;
	}
.planCardLogo{
	width:12em;
	}
.homeHeroWrapper.Individuals.Medicare{
	background-position:left;
}
	.hmformContainer{padding:0; width:100%;}
    .faq_a_txt {font-size: .8em;	
}

/* ---- copied from theme.css @media (max-width: 480px) ---- */
@media (max-width: 480px){
  .step .label{ font-size: 12px; }
}


/* ============================================================
   SECTION 4 - Footer + results-page controls (mobile)
   ============================================================ */
@media only screen and (max-width: 799px){
  .footerLeftDiv a{ display:inline-flex; align-items:center; min-height:40px; padding:0 .25em; vertical-align:middle; }
  .footerDisclaimer table a{ display:flex; align-items:center; min-height:40px; padding:.2em 0; }
  .footerDisclaimer table, .footerDisclaimer tbody, .footerDisclaimer tr, .footerDisclaimer td{ display:block; width:100%; }
  .footerDisclaimer td{ padding-right:0; }
  .footerDisclaimer table p{ margin:.15em 0; }
  /* Was display:flex + align-items/justify-content - see the Save for Later
     note further down this file for why that's removed. #calculateBTN
     ("Update Results") and #ACABTN ("Calculate Subsidy") both pair a label
     with a following icon, which a flex context was running together by
     dropping the whitespace between them; text-align:center keeps these
     centered in normal inline flow instead. display:block is restated
     explicitly because .redButton (unlike .blueButton) has no display of
     its own in theme.css - it would default to plain inline, on which
     min-height has no effect at all. */
  .sortingDiv .redButton, #calculateBTN, #ACABTN, .js-add{
    float:none; display:block; width:100%; box-sizing:border-box;
    text-align:center; min-height:44px; margin:.4em 0 0;
  }
  #ACABTN{ position:static !important; right:auto !important; bottom:auto !important; }

}

@media only screen and (max-width: 640px){
  .additionalQuoteDetails{ flex-direction:column; align-items:stretch; }
  .additionalQuoteDetails > div{ border-right:none; border-bottom:1px solid #e2e2e2; padding:.45em 0; }
  .additionalQuoteDetails .last{ margin-left:1em; margin-right: 1em; border-bottom:none; }
}

@media only screen and (max-width: 480px){
  .sortingDiv > div{ float:none; width:100%; }
  #acaDetailsForm > .floatLeft{ float:none; width:100%; }	
}


/* ============================================================
   SECTION 5 - Header (two logos) + welcome box + search params
   ============================================================ */
@media only screen and (max-width: 799px){
  .headerWrapper{ height:auto; padding-bottom:.5em; }
  .headerContent{ display:flex; flex-wrap:wrap; align-items:center; padding:.6em 12px 0; }
  .headerLogo{ order:1; float:none; display:block; margin:0; width:9.5em; height:4.15em; }
  .headerLogoCostco{ order:2; float:none; display:block; margin:0 0 0 auto; width:8em; height:2.2em; }
  .headerWelcome{ order:3; flex-basis:100%; float:none; display:block; width:100%; text-align:center; padding-left:0; margin-top:.35em; }

  .agentBox{ float:none; }
  .quoteBoxContainer{ float:none; display:block; width:100%; clear:both; padding-left:0; }
  .arrow_box{ float:none; width:98%; box-sizing:border-box; margin-top:1.5em; }
  .arrow_box:after{ right:auto; left:2.5em; top:auto; bottom:100%; margin-top:0; border-right-color:transparent; border-bottom-color:#fafafa; }
}

@media only screen and (max-width: 640px){
  .additionalQuoteDetails{ font-size:1.5em; }
  .additionalQuoteDetails label{ display:block; margin-bottom:.15em; }
  .additionalQuoteDetails input, .additionalQuoteDetails select{ min-height:44px; box-sizing:border-box; padding:.3em .5em; font-size:1em; }
  .additionalQuoteDetails input[type="text"]{ width:auto !important; min-width:6em; }
  .additionalQuoteDetails input[type="date"]{ width:auto !important; min-width:11em; }

  /* (4) "Save for Later": full-width, min-height:44px is a WCAG tap-target
     FLOOR only - not a forced exact height. This used to be display:flex
     (align-items/justify-content centering the icon+label), but a flex
     container drops the whitespace-only text node between inline content
     and a following icon, running the label and icon together with no gap.
     text-align:center (already the .blueButton base, restated here for
     clarity) centers icon+label in normal inline flow instead, where that
     space is never collapsed. */
  .additionalQuoteDetails .last{ display:block; }
  .additionalQuoteDetails .last .blueButton{
    width:100%; box-sizing:border-box; min-height:44px; text-align:center;
  }
}


/* ============================================================
   SECTION 6 - MOBILE NAVIGATION (consolidated)
   All mobile-nav CSS now lives here; the matching rules were removed from
   theme.css so there are no cross-file conflicts. The lone exception is the
   desktop default  navbar.mobile{display:none}  which must stay in theme.css,
   because this sheet is gated to max-width:799px and cannot set desktop state.
   ============================================================ */
@media only screen and (max-width: 799px){

  navbar{ display:none; }
  navbar.mobile{
    display:flex;
    position:relative;     /* the overlay anchors to THIS box */
    width:100%;
    padding:0;             /* (2) the old 16px h-padding pushed the bar past the
                              viewport and offset the overlay - removed */
    box-sizing:border-box;
  }

  navbar.mobile table{ width:100%; }
  navbar.mobile tbody{ display:block; width:100%; }
  navbar.mobile tr{ display:flex; align-items:center; width:100%; padding:0 12px; box-sizing:border-box; }
  navbar.mobile td{ display:block; }
  navbar.mobile td[align="left"]{ flex:0 0 auto; }
  navbar.mobile td[align="right"]{
    flex:1 1 auto; display:flex; flex-wrap:nowrap; align-items:center;
    justify-content:flex-end; gap:.1em; position:static;
  }

  .mobileNavBackBtn{ font-size:2em; padding:.3em; float:none; }
  .mobileNavBackBtn:hover{ background-color:#003b68; }

  navbar.mobile a.toplink{
    float:none; display:inline-flex; align-items:center; justify-content:center;
    height:auto; line-height:1; font-size:1.6em; padding:.18em .22em;
    text-align:center; vertical-align:middle;
  }
  navbar.mobile a.toplink:hover{ background-color:#003b68; }

  #hamburger-icon{
    display:block; float:none; flex:0 0 auto; order:99; margin-left:.15em;
    background-color:#0078C7; padding:.25em .5em; cursor:pointer; position:relative;
  }
  .bar1, .bar2, .bar3{ width:35px; height:3px; background-color:#fff; margin:6px 0; transition:.4s; }
  .open .bar1{ -webkit-transform:rotate(-45deg) translate(-6px,6px); transform:rotate(-45deg) translate(-6px,6px); }
  .open .bar2{ opacity:0; }
  .open .bar3{ -webkit-transform:rotate(45deg) translate(-6px,-8px); transform:rotate(45deg) translate(-6px,-8px); }

  .mobileMenu{ display:none; }

  /* (2)+(3) Open overlay: anchored to navbar.mobile, full viewport width with
     no offset, and no height cap so every expanded item stays reachable. */
  .mobileMenu.open{
    display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start;
    position:absolute;
    top:100%;            /* flush beneath the icon bar */
    left:0; right:0;     /* full width, no 16px shift */
    width:auto; min-width:0;
    height:auto;         /* (3) was 100vh - removed so it can't be cut off */
    z-index:1000;
    background-color:rgba(0,93,171,0.97);
  }
  .mobileMenu a.navTab{ justify-content:flex-start; padding-left:1em; }

  /* In-menu accordion (relocated from theme.css; scoped under .mobileMenu) */
  .mobileMenu .accordion.mobileNav{ width:100%; min-height:16px; background-color:transparent; border-radius:0; overflow:hidden; color:#fff; padding-bottom:0; }
  .mobileMenu .accordion.mobileNav li{ min-height:16px; }
  .mobileMenu .accordion.mobileNav h2{
    display:flex; justify-content:space-between; color:#fff; font-size: 1.15rem!important;
    font-family:'Costco Sans Micro','apple-system','BlinkMacSystemFont','Segoe UI','Roboto',sans-serif; font-weight:normal!important; padding:1em 1em 0 1em; border:none;
    text-align:left; margin:0; height:1em; line-height:0px; white-space:normal;
  }
  .mobileMenu .accordion.mobileNav li div{
    color:#fff; font-size:1rem; font-family:'Costco Sans Micro','apple-system','BlinkMacSystemFont','Segoe UI','Roboto',sans-serif; font-weight:normal;
    padding:0 0 1em 0; position:relative; z-index:100;
  }
  .mobileMenu .accordion.mobileNav li div a{ padding:.25em 2em; }
  .mobileMenu .accordion.mobileNav a:hover{ background-color:#005DAB !important; text-decoration:underline !important; }
  .mobileMenu .accordion.mobileNav a:focus{ background-color:#005DAB !important; text-decoration:underline !important; }
  .mobileMenu .accordion.mobileNav ul li i.arrow{transform: translate(-16px, 0)!important;}	
  .mobileMenu .accordion.mobileNav ul li i.arrow:before,
  .mobileMenu .accordion.mobileNav ul li i.arrow:after{ content:""; position:absolute; background-color:#fff; width:3px; height:9px; top:1.25em; left:1.5em; }
  .mobileMenu .accordion.mobileNav li:hover{ background-color:#003b68; }
  .mobileMenu .accordion.mobileNav ul li input[type=checkbox]:checked ~ div{ margin-top:0; max-height:0; opacity:0; transform:translate(0,50%); display:none; }
  .mobileMenu .accordion.mobileNav ul li input[type=checkbox]:empty ~ div{ background-color:#003b68; z-index:100; }
  .mobileMenu .accordion.mobileNav ul li input[type=checkbox]:empty ~ h2{ background-color:#003b68; }
  .mobileMenu .accordion.mobileNav ul li input[type=checkbox]:checked ~ h2{ background-color:transparent; }

  .mobileMenu .accordion a, .mobileMenu a.navTab{ display:flex; align-items:center; min-height:40px; }

  .breadcrumbNav{ height:auto; flex-wrap:wrap; align-items:center; padding:.45em 4%; font-size:.85em; line-height:1.45; row-gap:.1em; }
  .paginationTopDiv{ padding:1em 0; font-size: 1.3em;}	
  .redButton.outline {font-size: 1.5em;}	
}
@media only screen and (max-width: 380px){
	.headerWelcome{font-size:1.4em; }	
}

/* ============================================================
   SECTION 7 - Colorbox popups: near-full-screen takeover on phones
   The default colorbox frame (padding-right:20px gutter, 32px top margin,
   content-box sizing, decorative border tiles) squeezes popup content on
   phones. Below 800px we take the shell over: strip the frame, fill a
   rounded near-full-screen panel with the iframe, and float a large close
   button. A thin band of the dark overlay still shows around the panel so
   it still reads as a popup. Reusable for EVERY colorbox popup.
   (Popup CONTENT styling lives in the modular popupMobile.css.)
   ============================================================ */
@media only screen and (max-width: 799px){

  /* Backdrop stays visible around the panel = clearly a modal */
  #cboxOverlay{ background:#000 !important; opacity:.62 !important; filter:alpha(opacity=62) !important; }

  /* The popup box: fixed, near full-screen, rounded; kill colorbox's gutter */
  #colorbox{
    position:fixed !important;
    top:1.5vh !important; left:2vw !important;
    width:96vw !important; height:97vh !important;
    max-width:96vw !important; max-height:97vh !important;
    padding:0 !important; box-sizing:border-box !important; overflow:visible !important;
  }
  #cboxWrapper{
    position:relative !important;
    width:100% !important; height:100% !important; max-width:100% !important;
    padding:0 !important; box-sizing:border-box !important;
    background:#fff !important; border-radius:12px !important; overflow:hidden !important;
    box-shadow:0 6px 24px rgba(0,0,0,.45) !important;
  }

  /* Remove the decorative border tiles (they ate width + made the edge gradient) */
  #cboxTopLeft,#cboxTopCenter,#cboxTopRight,
  #cboxMiddleLeft,#cboxMiddleRight,
  #cboxBottomLeft,#cboxBottomCenter,#cboxBottomRight{ display:none !important; }

  /* Content + iframe fill the whole panel */
  #cboxContent{
    position:absolute !important; top:0 !important; left:0 !important; right:0 !important; bottom:0 !important;
    width:auto !important; height:auto !important;
    margin:0 !important; padding:0 !important; box-sizing:border-box !important;
    background:#fff !important; overflow:hidden !important;
  }
  #cboxLoadedContent{
    width:100% !important; height:100% !important;
    margin:0 !important; padding:0 !important; box-sizing:border-box !important;
    background:#fff !important; overflow:hidden !important;
  }
  #cboxLoadedContent iframe{ width:100% !important; height:100% !important; border:0 !important; display:block !important; }

  /* Hide colorbox's unused chrome */
  #cboxTitle,#cboxCurrent,#cboxSlideshow,#cboxPrevious,#cboxNext{ display:none !important; }

  /* Large, always-visible close button pinned to the panel's top-right */
  /* Close button: floats ABOVE and OUTSIDE the popup frame at its top-right corner.
     #colorbox starts at top:1.5vh — the button at top:4px sits clearly above
     the frame on all phone sizes while still hugging the top-right corner. */
  #cboxClose{
    position:fixed !important;
    top:4px !important; right:6px !important;
    width:42px !important; height:42px !important; min-width:42px !important;
    margin:0 !important; padding:0 !important;
    background:#DE2127 !important; background-image:none !important;
    border:3px solid #fff !important; border-radius:50% !important;
    box-shadow:0 3px 10px rgba(0,0,0,.55) !important;
    text-indent:0 !important; font-size:0 !important; color:#fff !important;
    overflow:hidden !important; z-index:100000 !important; cursor:pointer !important;
  }
  #cboxClose:after{
    content:"\00D7" !important; display:block !important;
    width:100% !important; height:100% !important; text-align:center !important;
    font-size:28px !important; line-height:38px !important; color:#fff !important;
  }
  #cboxClose:hover,#cboxClose:focus{ background:#b81118 !important; }
}

/* ============================================================
   SECTION 8 - Individuals landing page (hero, quote form,
   content boxes, bullet tables, service bar) - down to 360px
   ============================================================ */
@media only screen and (max-width: 799px){
  /* ---- Hero ---- */
  .homeHeroWrapper.Individuals{ height:auto; min-height:31em; padding:1.25em 0; background-position:center top; }
  .homeHeroContent.Individuals{ width:92%; margin:0 auto; font-size:1.3em; box-sizing:border-box; }
  .homeHero.Individuals h1{ font-size:1.55em; line-height:1.2em !important; }
  .homeHeroContent.Individuals ul.fa-ul{ font-size:1.25em; }

  /* ---- Quote form: stack fields, 44px+ controls ---- */
  #individualQuoteForm{ width:100%; box-sizing:border-box; }
  #individualQuoteForm .inline-block{ display:block; width:100%; padding-top:.5em; }
  #individualQuoteForm label{ display:block; margin-bottom:.2em; font-size: 1.2em; }
  #individualQuoteForm select,
  #individualQuoteForm input{
    width:100% !important; max-width:22em; box-sizing:border-box;
    min-height:44px; margin-top:.25em; font-size:1rem;
  }
  #individualQuoteForm br{ display:none; }
  #individualQuoteForm #indvGetAQuoteBtn{
    float:none !important; right:auto !important; display:block;
    width:100%; max-width:22em; margin:1em auto 0 !important;
    min-height:48px; box-sizing:border-box;
  }



  /* ---- Content boxes: full width, drop desktop indents/decorations ---- */
  .homeContent .homeIndivBox,
  .homeContent .homeSGBox,
  .homeContent .homeLGBox{
    float:none !important; width:auto !important;
    padding-left:12px !important; padding-right:12px !important;
    padding-bottom:3em;  box-sizing:border-box; border:none;
  }
  .homeContent .homeLGBox{ padding-right:12px !important; }   /* breathing room from the dotted divider */
  .homeContent .IdvChoiceCircle,
  .homeContent .IdvShortTermMedCircle,
  .homeContent .hmIndivualsCircle,
  .homeContent .hmLGWMArrows,
  .homeContent .hmIndivWMArrows{ display:none !important; }


  /* "Shop for..." buttons: un-float so they stop overlapping the next heading.
     (Originally listed only .greenButton; .blueButton added since most
     greenButton instances site-wide have since been converted and this
     selector would otherwise no longer match them.) */
  .homeContent .greenButton,
  .homeContent .blueButton{
    float:none !important; display:block; width:100%; box-sizing:border-box;
    margin:1.1em 0 .3em !important; min-height:46px; line-height:1.3; text-align:center;
  }

  /* .redButton (incl. the "redoutline" .redButton.outline variant): theme.css
     gives this no `display`, so as a plain inline element its pill-shaped
     border visibly splits across two lines whenever the button's own text
     wraps. Adding a floatLeft/floatRight class avoids the split (floats
     compute to block) but can then push the button past its container's
     edge on a narrow phone. A single inline-flex base rule fixes the split
     without needing a float class at all, and behaves the same whether or
     not floatLeft/floatRight is also present. */
  .redButton{
    display:inline-flex;
    align-items:center; justify-content:center; gap:.35em;
    max-width:95%; box-sizing:border-box; text-align:center;
    white-space:normal;
  }

  /* ---- CPSum2colFlex (text + image side-by-side blocks, e.g. the
     "Ameritas Small Business Dental/Vision Insurance" sections): already
     display:flex (flex-direction:row by default) in theme.css, so the two
     children sit side-by-side at any width, badly cramped on a phone.
     Stack them full-width, image always first regardless of which physical
     child (.floatLeft vs .floatRight) happens to hold it in a given page's
     markup -- Dental and Vision have the image/text in opposite slots. ---- */
  .CPSum2colFlex{
    display:flex;
    flex-direction:column;
  }
  .CPSum2colFlex > div{
    width:100% !important;
    max-width:100% !important;
    margin:1em 0 1em !important;
    position:static !important;
    top:auto !important;
    font-size:1em !important;
    box-sizing:border-box;
  }
  .CPSum2colFlex > div:has(img){ order:1; }
  .CPSum2colFlex > div:not(:has(img)){ order:2; }

  /* ---- flex2cols (same family of problem as CPSum2colFlex) ----
     expansionStyles.css sets .flex2cols to display:flex; flex-wrap:nowrap
     with two 50%-width children, so on a phone the columns stay cramped
     side-by-side. Some instances are two parallel text lists (e.g. the
     BCS/Regence/Ameritas summary pages); others pair a text column with a
     video/image (e.g. the Zywave page). Stack them all full-width; where
     one column carries the image/video link, float it to the top so the
     text flows beneath it -- regardless of whether that's .colLeft or
     .colRight in a given page's markup. */
  .flex2cols{
    display:flex !important;
    flex-direction:column !important;
    flex-wrap:wrap !important;
  }
  .flex2cols > div,
  .flex2cols > .colLeft,
  .flex2cols > .colRight{
    width:100% !important;
    max-width:100% !important;
    flex:1 1 100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
    margin:0 0 1em !important;
    box-sizing:border-box;
  }
  .flex2cols > div:has(img),
  .flex2cols > div:has(a[href*="video"]){ order:1; }
  .flex2cols > div:not(:has(img)):not(:has(a[href*="video"])){ order:2; }

  /* Bullet-list links: comfortable >=40px tap targets */
  .homeBulletTable1 .fa-ul li, .homeBulletTable2 .fa-ul li{ margin-bottom:.3em; }
	.homeBulletTable1 .fa-ul li i{padding-top:.3em;}		
  .homeBulletTable1 .fa-ul li a, .homeBulletTable2 .fa-ul li a{
    display:inline-block; padding:.5em 0; line-height:1; min-height:40px; box-sizing:border-box;
  }

  .homeBulletTable1, .homeBulletTable2{ position:static; top:auto; width:100% !important; }
  .landingPg2ColRespWidth{ width:100% !important; }

  /* ---- Personal Service & Support bar ---- */
  .empGreybar{ height:auto !important; }
  .empGreybarPic2, .empGreybarPic3{ display:none !important; }   /* hide photo so text fills the width */
  .empGreybarContent h2{ font-size:1.9rem; line-height:1.15; }
  .empGreybarContent h3{ font-size:1.2rem; line-height:1.3; }
  .empGreybarContent .redButton{
    float:none !important; display:block; padding:.75em; }
}

/* Stack the two-column link lists in the bullet tables */
@media only screen and (max-width: 640px){
  .homeBulletTable1, .homeBulletTable1 tbody, .homeBulletTable1 tr, .homeBulletTable1 td,
  .homeBulletTable2, .homeBulletTable2 tbody, .homeBulletTable2 tr, .homeBulletTable2 td{
    display:block; width:100% !important; box-sizing:border-box;
  }
  .homeBulletTable1 td, .homeBulletTable2 td{ padding:.15em 0; }
  .homeHeroContent.Individuals{ font-size:1.2em; }
  .homeHero.Individuals{ padding-left:0; }
  .homeHero.Individuals h1{ font-size:1.4em; }
  .empGreybarContent.service{
    width:auto !important; height:auto !important;
    padding:1.75em 1.5em !important; font-size:1em; box-sizing:border-box;
  }  
	.empGreybarContent.service ul{margin-left:2em;}	
   /* Headings: remove the -1.5em pull (overlap + gap) and shrink */
  .homeContent .homeHeading{
   
    font-size:1.6rem; line-height:1.18; margin:0 0 .4em;
  }	
	
}

@media only screen and (max-width: 460px){
	.homeContent{padding-left:.5em; padding-right: .5em;}
	  /* Footer contact buttons: stack full-width and center on phones */
  .footerRightDiv{ float:none; display:flex; flex-direction:column; align-items:center; width:100%; text-align:center; margin-top:.6em; }
}

@media only screen and (max-width: 360px){
  .homeHeroContent.Individuals{ width:94%; font-size:1.12em; }
  .homeHero.Individuals h1{ font-size:1.25em; }
  #individualQuoteForm select, #individualQuoteForm input,
  #individualQuoteForm #indvGetAQuoteBtn{ max-width:100%; }
  .homeContent .homeHeading{ font-size:1.4rem; }
  .empGreybarContent h2{ font-size:1.6rem; }
  .empGreybarContent h3{ font-size:1.1rem; }
  .redBarHome{ font-size:1.28em; }
}

/* ============================================================
   SECTION 9 - Enrollment pages (stepper, form, summary table)
   pg1-3: Individuals_Enroll_Medical_* - responsive down to 360px
   ============================================================ */
@media only screen and (max-width: 799px){
  /* Form layout table: readable size + full width */
  #MainForm table{ width:100% !important; font-size:1em; box-sizing:border-box; }

  /* Stacked, full-width 44px+ form controls (fixes width:105% overflow) */
  #MainForm label{ display:block; margin:.45em 0 .15em; }
  #MainForm select,
  #MainForm input[type="text"],
  #MainForm input[type="date"]{
    width:100% !important; max-width:24em; box-sizing:border-box;
    min-height:44px; margin-top:.25em; font-size:1rem;
  }
  #MainForm input[type="file"]{ width:100%; max-width:24em; box-sizing:border-box; }

  /* Custom dropdown chevron + reserve space so long option text can't run under it */
  #MainForm select{
    -webkit-appearance:none; -moz-appearance:none; appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23005DAB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right .65em center; background-size:.8em auto;
    padding-right:2.2em;
    text-overflow:ellipsis; white-space:nowrap; overflow:hidden;
  }

  /* Previous / Next: fluid widths so they fit one row and stay tappable.
     Was display:inline-flex - see the Save for Later note above for why
     that's removed; inline-block + text-align:center keeps these buttons
     sitting side by side while no longer collapsing an icon/label gap. */
  #MainForm .blueButton.width150px{
    width:auto !important; min-width:44%; box-sizing:border-box; min-height:44px;
    text-align:center;
  }

  /* Stepper labels: keep "Documentation" from overflowing */
  .step .label{ font-size:12px; }

  /* ---- Purchase Summary: stack rows into cards ---- */
  .shoppingCartTable{ font-size:1em !important; background:none; border:none;}
  .shoppingCartTable, .shoppingCartTable tbody{ display:block; width:100%; }
  .shoppingCartTable .colHeading{ display:none; }
  .shoppingCartTable tr{
    display:block; border:1px solid #ddd; border-radius:8px;
    margin:0 0 .7em; padding:.7em .85em; box-sizing:border-box;
  }
	
	.shoppingCartTable tr.fullbleed{background-color: #F9F9F9!important;}	
	
  .shoppingCartTable td{
    display:block; width:auto !important; text-align:left !important;
    border:0; padding:.25em 0;
  }
  .shoppingCartTable .resultPlanName{ font-size:1.15em; font-weight:bold; }
  .shoppingCartTable .resultLargePrice{ font-size:1.6em; }
  .shoppingCartTable tr.totals{ background:#EFF7FF; }
  .shoppingCartTable tr.totals td{ text-align:right !important; height:auto !important; }
  .shoppingCartTable td[height]{ height:auto !important; }   /* drop fixed cell heights so the note isn't covered by the buttons */

  /* Footer: stack copyright block above the contact buttons */
  .footerHomeContent{ padding-left:16px; padding-right:16px; box-sizing:border-box; }
  .footerHomeContent .footerLeftDiv{ width:100%; float:none; text-align:center; }
}

@media only screen and (max-width: 360px){
  .step .label{ font-size:11px; }
  #MainForm .blueButton.width150px{ min-width:46%; }
}

/* ============================================================
   SECTION 10 - Shopping cart popup (IndvShoppingCart.html)
   colorbox iframe content - responsive down to 360px
   ============================================================ */
@media only screen and (max-width: 799px){
  /* Popup header + cart icon (icon was width:3vw = tiny) */
  .popHeader.shoppingCart{ font-size:1.5em; line-height:1.2; }
  .popHeader .shoppingCartIcon{ width:1.4em !important; height:auto; vertical-align:middle; }

  /* Cart table: cap carrier logo + label the terse stacked columns.
     (Global .shoppingCartTable rules already stack rows into cards.) */
  .shoppingCartTable .resultCarrierLogo img{ width:auto !important; max-width:140px; height:auto; }
  .shoppingCartTable.pop td:nth-child(2)::before{ content:"Plan Category: "; font-weight:bold; color:#005DAB; }
  .shoppingCartTable.pop td:nth-child(3)::before{ content:"Plan Type: "; font-weight:bold; color:#005DAB; }
  .shoppingCartTable.pop td:nth-child(4)::before{ content:"Coverage Type: "; font-weight:bold; color:#005DAB; }

  /* Suggested-plans carousel -> native horizontal swipe (hide arrow buttons) */
  #scrollLinks, #scrollLinks tbody, #scrollLinks tr{ display:block; width:100%; }
  .SP-ScrollBtn{ display:none; }
  #planSuggestion_scroll{
    display:block; width:100%; box-sizing:border-box;
    overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap;
  }
  .planCardWrapper{ display:inline-block; vertical-align:top; }

  /* Action area: stack the Shop-For select + buttons full width */
  .flexAlignRight{ float:none !important; display:block; width:100%; box-sizing:border-box; }
  .flexAlignRight .pad20{ padding:.4em; }
  #insuranceType{
    width:100% !important; min-height:44px; box-sizing:border-box; font-size:1rem; margin-top:.25em;
    -webkit-appearance:none; -moz-appearance:none; appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23005DAB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right .65em center; background-size:.8em auto;
    padding-right:2.2em; text-overflow:ellipsis; white-space:nowrap; overflow:hidden;
  }
  .flexAlignRight .blueButton,
  .flexAlignRight .greenButton{
    float:none !important; display:block; width:90% !important; box-sizing:border-box;
    margin:.5em 1em; min-height:46px; text-align:center;
  }
  /* Validation note was position:absolute - bring it back into flow */
  .notation.floatLeft{ position:static !important; left:auto !important; width:auto !important; float:none !important; padding:.4em 0; }
}

/* ============================================================
   SECTION 11 - Popups: account/signup forms, Premium Summary,
   ACA subsidy check (colorbox iframe content) - down to 360px
   Scoped to popup-only classes (.pad25, .lig_mid_sec).
   ============================================================ */
@media only screen and (max-width: 799px){
  /* Shared popup chrome */
  .popHeader{ font-size:1.5em; line-height:1.2; padding:12px 16px; }
  .pad25{ padding:16px 12px !important; box-sizing:border-box; }

  /* ---- Account / signup forms (createAccount*) ---- */
  .pad25 form table, .pad25 form tbody, .pad25 form tr, .pad25 form td{
    display:block !important; width:auto !important; box-sizing:border-box;
  }
  .pad25 form td{ text-align:left !important; padding:.15em 0 !important; }
  .pad25 form label{ display:inline-block; margin-bottom:.15em; }
  .pad25 input[type="text"], .pad25 input[type="email"], .pad25 input[type="password"]{
    width:100% !important; max-width:24em; box-sizing:border-box; min-height:44px; font-size:1rem; margin-top:.15em;
  }
  .pad25 .selectContainer{ display:block; }
  .pad25 select{
    width:100% !important; max-width:24em; box-sizing:border-box; min-height:44px; font-size:1rem; margin-top:.15em;
    -webkit-appearance:none; -moz-appearance:none; appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23005DAB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .65em center; background-size:.8em auto;
    padding-right:2.2em; text-overflow:ellipsis; white-space:nowrap; overflow:hidden;
  }
  /* keep big tooltips inside the viewport */
  .pad25 .tooltip span{ width:auto !important; max-width:84vw !important; right:auto !important; left:0 !important; }
  /* validation note (was position:absolute) */
  .pad25 .notation.floatLeft{ position:static !important; left:auto !important; width:auto !important; float:none !important; }
  /* action buttons -> full width, stacked */
  .pad25 .greenButton, .pad25 .blueButton{
    float:none !important; display:block !important; width:100% !important; box-sizing:border-box;
    margin:.5em 0 0 !important; min-height:46px; text-align:center;
  }

  /* ---- Premium Summary popup (ExecPremiumSummary) ---- */
  .pad25 .resultContainer{ display:block !important; width:auto !important; }
  .pad25 .resultLeft, .pad25 .resultCenter, .pad25 .resultRight{
    float:none !important; width:auto !important; display:block !important; box-sizing:border-box;
  }
  .pad25 .resultsDataTable{ display:block; }
  .pad25 .resultsDataTableTD{ display:block !important; width:auto !important; box-sizing:border-box; padding:.25em 0; }
  .pad25 .resultCarrierLogo img{ width:auto !important; max-width:160px; height:auto; }
  .pad25 .resultRight{ text-align:center; margin-top:.6em; }
  /* wide compare/census tables -> scroll horizontally instead of overflowing */
  .pad25 .compareTable{ display:block; width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }

  /* ---- ACA subsidy check popup (ACA_check) ---- */
  .lig_mid_sec{ padding-left:12px; padding-right:12px; box-sizing:border-box; }
  .ligh_annu, .ligh_month{ float:none !important; width:auto !important; display:block !important; margin:0 0 .6em; }
  .lig_mid_sec .greenButton{ min-height:46px; }
}

/* ============================================================
   SECTION 12 - More popups: login / alerts / QLE & short-term
   checks / premium summary / recalc (colorbox iframe content).
   Builds on Section 11's .pad25 rules; adds the gaps.
   ============================================================ */
@media only screen and (max-width: 899px){
  /* Stack floated form fields inside popups (Medical_check, ShortTerm_check, welcomeBack) */
  .pad25 .floatLeft, .pad25 .floatRight{ float:none !important; display:block; }
  .pad25 input[inputmask]{ width:100% !important; max-width:18em; box-sizing:border-box; min-height:44px; margin-top:.25em !important; }

  /* PremiumSummary: stack the contribution + Costco-value sub-tables */
  .pad25 .premiumSummaryDataTable, .pad25 .premiumSummaryDataTD, .pad25 .divTable{
    display:block !important; width:auto !important; padding-right:0 !important;
  }
  .pad25 .costcoValueIcons{ display:block; }
  .pad25 .cvTD{ display:inline-block; vertical-align:top; }

  /* reCalcPremium popup (no .pad25 wrapper) */
  .recalcPopup .compareTable, .recalcPopup .compareTable tbody,
  .recalcPopup .compareTable tr, .recalcPopup .compareTable td{
    display:block !important; width:auto !important; box-sizing:border-box;
  }
  .recalcPopup .compareTable td{ text-align:left !important; padding:.3em .5em; }
  .recalcPopup select, .recalcPopup input[type="text"]{
    width:100% !important; max-width:24em; box-sizing:border-box; min-height:44px; font-size:1rem; margin:.25em 0;
  }
  .recalcPopup select{
    -webkit-appearance:none; -moz-appearance:none; appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23005DAB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .65em center; background-size:.8em auto; padding-right:2.2em;
  }
  .recalcPopup .blueButton{
    float:none !important; display:block !important; width:100% !important; box-sizing:border-box;
    margin:.5em 0 0; min-height:46px; text-align:center;
  }
  .recalcPopup .notation{ position:static !important; left:auto !important; width:auto !important; float:none !important; }
}

/* ============================================================
   SECTION 13 - Plan Detail pages: compareTable horizontal scroll
   Applies to all *PlanDetails pages (2-col through 5-col tables).
   Uses the sticky-first-column + scroll-shadow pattern which is
   WCAG 2.1 AA compliant: two-dimensional scrolling is permitted for
   data tables (SC 1.4.10 Reflow, Note 2).
   The right-edge fade is the scroll affordance cue (SC 1.3.3).
   ============================================================ */
@media only screen and (max-width: 899px){

  /* ---- Scroll wrapper: lets the table exceed viewport width ---- */
  .compareTable{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;   /* smooth momentum on iOS */
    /* Right-edge fade: scroll affordance cue (WCAG SC 1.3.3) */
    background:
      linear-gradient(to right, #fff 30%, rgba(255,255,255,0)),
      linear-gradient(to right, rgba(255,255,255,0), #fff 70%) 100% 0,
      radial-gradient(farthest-side at 0 50%, rgba(0,93,171,.18), transparent),
      radial-gradient(farthest-side at 100% 50%, rgba(0,93,171,.18), transparent) 100% 0;
    background-repeat:no-repeat;
    background-size:3em 100%, 3em 100%, .9em 100%, .9em 100%;
    background-attachment:local, local, scroll, scroll;
    border-collapse:collapse;   /* keep theme.css collapse on block */
  }

  /* ---- Sticky first column: row label always visible ---- */
  .compareTable thead th:first-child,
  .compareTable tbody th:first-child,
  .compareTable tr .tdRowHeading{
    position:sticky;
    left:0;
    z-index:2;
    /* light blue sticky column — plan detail & C&E pages */
  }

  /* planDetailTableHdrLightBlue first cell (Census header) – override
     the white bg with the correct header blue (#4079B9 from theme.css) */
  .compareTable .planDetailTableHdrLightBlue th:first-child,
  .compareTable .planDetailTableHdrLightBlue .tdRowHeading{
    background:#4079B9;
    z-index:3;
  }

  /* Blank spacer cells in "Additional Benefits" rows (Medical page).
     These use trLightGrey1 (#f9f9f9) not tdRowHeading, so need their
     own sticky rule with the matching background. */
  .compareTable tr .tdStickyBlank{
    position:sticky;
    left:0;
    z-index:2;
    background:#f9f9f9;   /* matches trLightGrey1 from theme.css */
  }

  /* The dark-blue Plan Details header cell */
  .compareTable thead th.planDetailTableHdrDarkBlue{
    position:sticky;
    left:0;
    z-index:3;   /* above data cells and above light-blue section rows */
    background:#0b5ea2;
  }

  /* ---- Section-header rows (trlightBlue) ----
     Each row is now split into two cells (see HTML):
       .tdSectionSticky  – sticky first cell, carries the label text
       .tdSectionSpan    – filler remainder, visually extends the bar
     The old single full-colspan td is gone, so no misalignment risk. */
  .compareTable .tdSectionSticky{
    position:sticky;
    left:0;
    z-index:2;
    background:#d3e8ff;   /* match trlightBlue bg from theme.css */
    text-align:left;
  }
  .compareTable .tdSectionSpan{
    background:#d3e8ff;
    padding:0;
  }

  /* Ensure thead/tbody/tr render as their table roles inside the block */
  .compareTable thead{ display:table-header-group; }
  .compareTable tbody{ display:table-row-group; }
  .compareTable tr   { display:table-row; }
  .compareTable td,
  .compareTable th   { display:table-cell; }

  /* Comfortable minimum column width so text wraps rather than collapses */
  .compareTable td,
  .compareTable th{ min-width:8em; white-space:normal; }
  /* First column can be wider for readability of row labels */
  .compareTable .tdRowHeading,
  .compareTable thead th:first-child{ min-width:10em; }

  /* Scale down the oversized header font so columns need less space */
  .compareTable .planDetailTableHdrDarkBlue{ font-size:1.1em; }
  .compareTable .planDetailTableHdrLightBlue{ font-size:1em; }

  /* Row heading font: slightly smaller on mobile for density */
  .compareTable .tdRowHeading{ font-size:1em; }
}

/* Narrowest phones: tighten cell padding to maximise content area */
@media only screen and (max-width: 480px){
  .compareTable td,
  .compareTable th{ padding:.3em .4em; }
}

/* ============================================================
   SECTION 14 - Table scroll indicator pill
   Floating "Scroll for more" pill injected by JS when a
   .compareTable overflows its container on narrow screens.
   Pure CSS animation; no layout impact when pill is absent.
   ============================================================ */
.tableScrollWrap{
  position:relative;
}

.tableScrollHint{
  position:sticky;
  left:50%;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  gap:.4em;
  /* Visually floats above the table - bottom of the visible table area */
  margin-top:-2.6em;
  margin-bottom:.4em;
  padding:.45em .9em;
  background:rgba(11,94,162,.88);
  color:#fff;
  font-size:.85em;
  font-weight:600;
  border-radius:2em;
  white-space:nowrap;
  pointer-events:none;   /* never blocks table interaction */
  z-index:10;
  /* Entrance: fade + slide up */
  animation:scrollHintIn .35s ease forwards;
  transition:opacity .4s ease, transform .4s ease;
}

.tableScrollHint--hide{
  opacity:0;
  transform:translateX(-50%) translateY(.4em);
}

.tableScrollHintIcon{
  font-size:1.15em;
  line-height:1;
}

@keyframes scrollHintIn{
  from{ opacity:0; transform:translateX(-50%) translateY(.5em); }
  to  { opacity:1; transform:translateX(-50%) translateY(0);    }
}

/* ============================================================
   SECTION 15 - Compare & Export pages (.compareTable)
   ============================================================ */
@media only screen and (max-width: 899px){

  /* ── Scroll wrapper ──────────────────────────────────────── */
  .compareNExportWrapper .compareTable,
  .compareTable{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    background:
      linear-gradient(to right, #fff 30%, rgba(255,255,255,0)),
      linear-gradient(to right, rgba(255,255,255,0), #fff 70%) 100% 0,
      radial-gradient(farthest-side at 0 50%, rgba(0,93,171,.18), transparent),
      radial-gradient(farthest-side at 100% 50%, rgba(0,93,171,.18), transparent) 100% 0;
    background-repeat:no-repeat;
    background-size:3em 100%, 3em 100%, .9em 100%, .9em 100%;
    background-attachment:local, local, scroll, scroll;
    border-collapse:collapse;
  }

  /* ── Display resets ─────────────────────────────────────── */
  .compareTable thead{ display:table-header-group; }
  .compareTable tbody{ display:table-row-group; }
  .compareTable tr   { display:table-row; }
  .compareTable td,
  .compareTable th   { display:table-cell; }

  /* ── Column sizing ─────────────────────────────────────── */
  .compareTable th,
  .compareTable td{
    min-width:7em;
    white-space:normal;
    box-sizing:border-box;
    font-size:.88em;
    padding:.3em .4em;
  }
  /* First column: font-proportional, max 38vw */
  .compareTable th.compareNetworkBox,
  .compareTable th.tdRowHeading,
  .compareTable th.comparePlanHeading,
  .compareTable th.tdPlanHeading{
    min-width:0;
    width:auto;
    max-width:38vw;
  }

  /* ── Plan/carrier row ──────────────────────────────────── */
  .compareTable td.comparePlanHeading,
  .compareTable th.comparePlanHeading{
    background:#fff !important;
    min-height:auto;
    height:auto !important;
  }
  .compareTable tr .comparePlanHeading,
  .compareTable td.comparePlanHeading{
    position:static;
    z-index:1;
  }

  /* ── Sticky first column ───────────────────────────────── */
  .compareTable th.compareNetworkBox,
  .compareTable th.tdRowHeading,
  .compareTable th.tdPlanHeading{
    position:sticky;
    left:0;
    z-index:2;
    background:#eff7ff;
  }
  .compareTable th.comparePlanHeading{
    position:sticky;
    left:0;
    z-index:3;
    background:#fff !important;
    min-height:auto;
    height:auto !important;
  }

  /* ── Section-header sticky cells ──────────────────────── */
  .compareTable .tdSectionSticky{
    position:sticky;
    left:0;
    z-index:2;
    background:#d3e8ff;
  }
  .compareTable .tdSectionSpan{
    background:#d3e8ff;
    padding:0;
  }

  /* ── Fix 1+4: Monthly Premium (compareNetworkBox) ─────── */
  .compareTable th.compareNetworkBox{
    color:#005dab;
    font-size:1.25em;   /* larger Monthly Premium label */
    font-weight:700;
    height:auto  !important;
    width:auto   !important;
    top:0        !important;
  }
  /* Price data cells */
  .compareNExportWrapper .compareTable .compareNExportApplyBox,
  .compareTable .compareNExportApplyBox{
    background:#005dab;
    height:auto !important;
    min-width:9em;
	padding-bottom: 10px;  
  }
  .compareTable .resultSGTotalPrem strong{
    font-size:1.6em;
  }
  .compareTable .resultSGTotalPrem{
    font-size:.95em;
  }

  /* ── Fix 1c: Monthly Premium row — Individuals/Family pattern ──
     Different markup than the SG resultSGPrem classes above:
     .resultTaxCreditTxt / .resultLargePrice / .resultOldPrice / .resultAdd.
     Desktop sizes (3em price, 2em old-price, 1.9em Add-to-Cart, and an
     ABSOLUTELY-positioned Tax Credit badge sized for a 240px-tall column)
     overflow/overlap once squeezed into a mobile compareTable column.
     .compareNExportApplyBox already gets height:auto !important above,
     so once the badge no longer floats over the price, the cell grows
     to fit the stacked content with no fixed-height clipping.        */
  .compareTable .resultTaxCreditTxt{
    position:static;
    display:block;
    margin:0 0 .3em;
    font-size:.78em;
    line-height:1.25;
  }
  .compareTable .resultLargePrice{
    font-size:1.6em;
    line-height:1.15;
  }
  .compareTable .resultOldPrice{
    font-size:1em;
    line-height:1.2;
  }
  .compareTable .resultAdd{
    font-size:1em;
    line-height:1.3;
    display:inline-flex;
    align-items:center;
    gap:.3em;
  }

  /* ── Tier badge pills ──────────────────────────────────── */
  .compareTable .tierBadge{
    font-size:.8em;
    padding:.45em .85em;
    min-width:4em;
    display:inline-flex;
  }

  /* ── Fix 3: Head space for Costco Preferred Plan tab ───── */
  /* .comparefeaturedTab uses position:absolute; top:-2.5em.
     Add padding-top to wrapper so it appears inside the panel. */
  .compareNExportWrapper{
    padding-top:4em;
  }
 .comparefeaturedTab{
   Display:none;
  
  }

  /* ── Fix 6a: Hide desktop tab strip on mobile ──────────── */
  .compareNExportWrapper .compareTab,
  .compareNExportWrapper br.clear{
    display:none !important;
  }

  /* ── Fix 6b+1: Product-line select nav (mobile only) ───── */
  .cneSelectNav{
    display:flex !important;
    align-items:center;
    gap:.5em;
    margin-bottom:.6em;
    background:#005dab;    /* Fix 1: dark blue panel */
    border:none;
    border-radius:.5em;
    padding:.55em .75em;
    box-sizing:border-box;
  }
  .cneSelectNav__label{
    font-weight:600;
    font-size:.95em;
    color:#fff;            /* Fix 1: white text */
    white-space:nowrap;
    flex:0 0 auto;
  }
  .cneSelectNav__select{
    flex:1 1 auto;
    min-height:44px;
    font-size:1em;
    border:1px solid #97c2f1;
    border-radius:.35em;
    padding:.3em .5em;
    color:#222;
    background:#fff;
    cursor:pointer;
    width:100%;
  }

  /* ── Scroll buttons: hide on mobile ────────────────────── */
  .exportTableScrollBtnWrapper{ display:none !important; }

  /* ── Export Proposal: full width ───────────────────────── */
  a.greenButton.floatRight.fsize1_5{
    float:none !important;
    width:100%;
    box-sizing:border-box;
    text-align:center;
    min-height:48px;
    margin:.5em 0;
  }
  /* Was display:inline-flex + align-items:center, with the icon-margin
     rules below compensating for flex dropping the whitespace-only text
     node between the link's label and its icon - the same pattern fixed
     throughout this file (see the Save for Later note further down).
     display:inline-block is explicit because a bare <a> has no display of
     its own in theme.css (defaults to plain inline, on which min-height
     has no effect); the compensating icon margins are gone since normal
     inline flow restores that gap on its own once flex is removed. */
  .floatLeft.fsize1_4 a{
    display:inline-block; min-height:44px;
  }
  .floatRight.fsize1_4 a{
    display:inline-block; min-height:44px;
  }	
}

/* Fix 2: Hide select nav on ALL non-mobile sizes (no gap on desktop) */

@media only screen and (max-width: 480px){
  .compareTable th,
  .compareTable td{
    padding:.22em .28em;
    font-size:.82em;
    min-width:6em;
  }
}


/* ============================================================
   SECTION 16 - SmallGroups landing page (SmallGroups.html)
   Floating 3-step intake funnel (.sgFunnel) in the hero -
   un-float it into normal flow, stack fields, >=44px targets.
   The funnel's look/scope lives in SGintakeFunnel.css; only the
   phone adaptations live here. Down to 360px.
   ============================================================ */
@media only screen and (max-width: 799px){
  /* Hero: drop the fixed 690px desktop height, let the card flow */
  .SmallGroupsHomeContentWrapper{
    height:auto; min-height:0;
    padding:1.1em .9em; box-sizing:border-box;
    background-position:center top;
  }

	.redBarHome{
		height: auto;
	}	

  /* Funnel panel: un-float from the desktop absolute placement */
  .sgFunnel{
    position:static; transform:none; top:auto; right:auto;
    width:auto; max-width:none; margin:0;
  }

  /* Single-column fields + review on the narrow panel */
  .sgFunnel .grid{ grid-template-columns:1fr; }
  .sgFunnel .review dl{ grid-template-columns:1fr; }
  .sgFunnel .review dt{ margin-top:4px; }
  .cols3 {
  padding-left: 1em;
  padding-right: 1em;
  box-sizing: border-box;
}		
}

@media only screen and (max-width: 480px){
  .sgFunnel .card__pad{ padding:20px 16px; }
  /* Stack the action row so the primary control is full-width and on top */
  .sgFunnel .actions{ flex-direction:column-reverse; align-items:stretch; }
  .sgFunnel .btn{ width:100%; }
  /* TCPA checkbox: >=44px tap target (WCAG 2.5.5) */
  .sgFunnel .consent input[type="checkbox"]{ width:44px; height:44px; min-width:44px; }
  /* Regulated-notice dialog buttons stack full-width */
  .sgFunnel .gate .gate__actions{ flex-direction:column; }
  .sgFunnel .gate .btn{ width:100%; }
  .SGhmChoiceBox {border-top: none;}
  .homeSGBox {border-top: none;}	
  .homeContent .homeHeading {font-weight: 700; font-size: 2em;}	
	h2.homeHeading{top:.25em;}	
}

@media only screen and (max-width: 360px){
  .SmallGroupsHomeContentWrapper{ padding:.8em .55em; }
  .sgFunnel .card__pad{ padding:16px 13px; }
  .sgFunnel h1{ font-size:1.4rem; }
}


/* ============================================================
   SECTION 17 - SmallGroups enrollment / quoting pages
   SmallGroups_EECensus, EmpContribution, My_Enrollment,
   PremiumSummary: card tables, stacked form controls,
   planTile overrides, scroll-hint, 360px floor.
   ============================================================ */
/* =========================================================================
   1. SHARED — agentBox + quoteBoxContainer keep their proportions at all
      widths; minor typography tightening under the existing theme sizes.
   ========================================================================= */
@media only screen and (max-width: 799px) {

  /* Agent avatar + speech-bubble: stack vertically */
  .agentBox{
    display:block;
    float:left;
    margin:.25em .75em .5em 0;
  }
  .quoteBoxContainer{
    overflow:hidden;  /* contains the float */
  }
  .arrow_box{
    font-size:.95em;
    line-height:1.5;
  }

  /* Breadcrumb: allow wrapping, tighten size */
  .breadcrumbNav{ font-size:.9em; }

  /* Navigation/previous/continue button pair: stack neatly */
  a.blueButton.floatLeft,
  a.blueButton.floatRight{
    min-height:44px;
    align-items:center;
    box-sizing:border-box;
  }

  /* General upload/action buttons */
  a.fileUpload{
    display:block;
    float:none !important;
    margin:.4em 0 !important;
    min-height:44px;
    box-sizing:border-box;
  }
}


/* =========================================================================
   2. My_Enrollment — 5-col applications table → responsive data-label cards
      (EECensus uses the .censusList div-card system defined in Section 2b below)
   ========================================================================= */
@media only screen and (max-width: 799px) {

  /* Unwrap the sideScroll helper: not needed when we card-ify */
  .sideScroll{
    overflow-x:visible;
    width:auto;
  }

  /* Card shell: each <tr> becomes a self-contained card */
  .shoppingCartTable,
  .shoppingCartTable tbody{
    display:block;
    width:100%;
  }

  /* Hide the column-heading row */
  .shoppingCartTable tr.colHeading{
    display:none;
  }

  /* Every data row → card (My_Enrollment only — .contribFormTable excluded) */
  .shoppingCartTable:not(.contribFormTable) tr:not(.colHeading):not(.totals){
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.35em .75em;
    border:1px solid #c5d9ef;
    border-radius:8px;
    margin:0 0 .85em;
    padding:.7em .85em;
    box-sizing:border-box;
    background:#fff;
  }

  /* Each cell → labeled block */
  .shoppingCartTable td{
    display:block;
    padding:.2em 0;
    text-align:left !important;
    border:0;
    font-size:1em;
    /* clear any width% from the source */
    width:auto !important;
  }

  /* data-label pseudo-element: the column heading shown inside the card */
  .shoppingCartTable td[data-label]::before{
    content:attr(data-label);
    display:block;
    font-size:.8em;
    font-weight:700;
    color:#005dab;
    text-transform:uppercase;
    letter-spacing:.02em;
    margin-bottom:.15em;
  }

  /* Full-width cells: Employee Name, Edit, Delete span both columns */
  .shoppingCartTable td[data-label="Employee Name"],
  .shoppingCartTable td[data-label="Edit"],
  .shoppingCartTable td[data-label="Delete"],
  .shoppingCartTable td[data-label="#"]{
    grid-column:1 / -1;
  }

  /* "totals" row (Add Group Member button) */
  .shoppingCartTable tr.totals{
    display:block;
    border:0;
    border-radius:0;
    padding:0;
    background:none;
  }
  .shoppingCartTable tr.totals td{
    display:block;
	padding:.5em;
    text-align:right !important;
  }
  .shoppingCartTable tr.totals td::before{ display:none; }

  /* Table-title row (colspan cell) */
  .shoppingCartTable td.tableTitle,
  .shoppingCartTable th.tableTitle{
    grid-column:1 / -1;
    border-radius:6px 6px 0 0;
  }

  /* Edit/Delete icons: make tap targets 44px */
  .shoppingCartTable td[data-label="Edit"] a,
  .shoppingCartTable td[data-label="Delete"] a{
    display:inline-flex;
    align-items:center;
    min-width:44px;
    min-height:44px;
    padding:.3em .5em;
    font-size:1.4em;
  }
}

@media only screen and (max-width: 640px) {
  /* Narrowest: single column card layout (My_Enrollment) */
  .shoppingCartTable:not(.contribFormTable) tr:not(.colHeading):not(.totals){
    grid-template-columns:1fr;
  }
  .shoppingCartTable td[data-label="Employee Name"],
  .shoppingCartTable td[data-label="Edit"],
  .shoppingCartTable td[data-label="Delete"],
  .shoppingCartTable td[data-label="#"]{
    grid-column:1;
  }
}


/* =========================================================================
   3. EmpContribution — inline form field labels + controls → stacked layout
      Cells carrying the .contribSection class are targeted.
   ========================================================================= */
@media only screen and (max-width: 799px) {

  /* Make the overall wrapper table behave as a plain block */
  .contribSection{
    display:block;
    padding:1em !important;    /* override the inline padding:25px */
  }

  /* Every label stacks as a block above its control */
  .contribSection label{
    display:block;
    font-weight:600;
    margin-top:1em;
    margin-bottom:.35em;
    max-width:100%;
  }

  /* Dropdowns: full-width, override inline style width:14em */
  .contribSection select{
    display:block;
    width:100% !important;
    max-width:26em;
    min-height:44px;
    box-sizing:border-box;
    -webkit-appearance:none;
    -moz-appearance:none;
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23005DAB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right .65em center;
    background-size:.8em auto;
    padding-right:2.2em;
    font-size:1rem;
  }

  /* Text inputs: override inline width:3em */
  .contribSection input[type="text"]{
    display:block;
    width:8em !important;    /* just wide enough for "50%", not full-width */
    min-height:44px;
    box-sizing:border-box;
    font-size:1rem;
    padding:.5em .75em !important;
    margin-top:.25em;
  }

  /* Hint text (Minimum 50%) */
  .contribSection span.darkblue{
    display:block;
    margin-top:.25em;
    font-size:.9em;
  }

  /* &nbsp; spacers become harmless whitespace — no special rule needed */
}

@media only screen and (max-width: 799px){
  /* Section headers (Medical / Dental / Vision Contributions):
     Section 9's shoppingCartTable rule gives every <tr> padding:.7em .85em,
     which pushes the heading's background away from the <tr> edges (white gap).
     Negative margins pull the heading flush to the <tr>'s content edges. */
  .shoppingCartTable th.tdRowHeading,
  .shoppingCartTable td.tdRowHeading{
    display:block;
    margin:-.7em -.85em;
    padding:.65em 1em !important;
    border-radius:0;
    box-sizing:border-box;
  }
}


/* =========================================================================
   4. My_Enrollment — 5-column applications table → responsive cards
   ========================================================================= */
@media only screen and (max-width: 799px) {

  /* Wrap the shoppingCartTable as block; hide column header row */
  /* NOTE: .shoppingCartTable base card rules from Section 2 above apply here
     since this page also uses that class. We add enrollment-specific rules. */

  /* The Plan cell is full-width (col 1 in a 2-col card grid) */
  .shoppingCartTable td[data-label="Plan"]{
    grid-column:1 / -1;
    border-bottom:1px dotted #c5d9ef;
    padding-bottom:.6em;
    margin-bottom:.25em;
  }

  /* Carrier logo within the Plan cell */
  .shoppingCartTable td[data-label="Plan"] .resultCarrierLogo{
    width:20em;
	max-width: 20em;  
    margin-bottom:.4em;
  }
  .shoppingCartTable td[data-label="Plan"] .resultCarrierLogo img{
    width:100% !important;
    height:auto;
  }
  .shoppingCartTable td[data-label="Plan"] .resultPlanName{
    font-size:1.1em;
    font-weight:700;
    margin:.3em 0 .4em;
    color:#222;
  }

  /* Enrollment Status: full-width, highlighted */
  .shoppingCartTable td[data-label="Enrollment Status"]{
    grid-column:1 / -1;
    border-top:1px dotted #c5d9ef;
    padding-top:.6em;
    margin-top:.25em;
  }

  /* Action buttons inside enrollment status cells */
  .shoppingCartTable td[data-label="Enrollment Status"] .blueButton,
  .shoppingCartTable td[data-label="Enrollment Status"] .greenButton{
    min-height:44px;
    box-sizing:border-box;   /* without this, min-height measures content only and
                                 theme.css's padding (8px top/bottom) stacks on top of
                                 it - a plain a.blueButton.floatRight rule elsewhere
                                 happens to set border-box too, which is why the one
                                 button in this group that carries .floatRight ("Continue
                                 Application") looked right while the other three (no
                                 float class) rendered ~16px taller. Setting it here
                                 directly makes all four consistent regardless of that
                                 unrelated rule. */
    margin:.35em 0;
    float:none !important;   /* neutralizes .floatRight (SmallGroups_My_Enrollment.html's
                                 "Continue Application" button) - floated, it sits outside
                                 normal flow and "Change Plan | Remove" (which follows it
                                 in the HTML but isn't floated) renders above/beside it
                                 instead of below. */
  }
  /* This block used to be display:inline-flex + align-items:center, with the
     rule below adding margin-left to the icon to compensate for flex
     dropping the whitespace-only text node between the button's label and
     its built-in raquo icon. Removing the flex context (min-height/
     box-sizing/margin/float above are unaffected) restores that gap
     naturally, so the compensating margin-left rule is gone too - keeping
     it would now stack a second gap on top of the real one. */

  /* Enrolled/Complete/status icons */
  .greenEnrolled{ font-size:1.05em; }

  /* Totals rows (congratulations / pending messages) */
  .shoppingCartTable tr.totals td::before{ display:none; }
}


/* =========================================================================
   5. PremiumSummary — Plan Premium Summary 2-col table: readable on phones
   ========================================================================= */
@media only screen and (max-width: 799px) {

  /* The plan tile sits at the top of the summary — use full width.
     .planTiles kept for back-compat; .planTileDetail is the current markup */
  .planTiles, .planTileDetail{
    margin:0 0 1em;
  }

  /* Plan Premium Summary table: the compareTable rule (Section 13 in
     mobile.css) handles horizontal scroll + sticky col.
     We just tighten the font and padding on this page. */
  .compareTable.fsize1_25{
    font-size:1em;
  }
  .compareTable .planDetailTableHdrDarkBlue{
    font-size:1em;
  }

  /* Recalculate button: full-width on phone, 44px tap */
  a.blueButton.width33{
    display:block;
    float:none !important;
    width:100% !important;
    min-height:44px;
    box-sizing:border-box;
    text-align:center;
    margin:.5em 0;
  }


@media only screen and (max-width: 480px) {
  /* Tighten table cell padding for widest content coverage on very small screens */
  .compareTable td, .compareTable th{
    padding:.3em .45em;
  }
}


/* =========================================================================
   6. 360px — absolute minimum: prevent any overflow, keep tap targets
   ========================================================================= */
@media only screen and (max-width: 359px) {

  /* Buttons: ensure they never overflow viewport */
  a.blueButton, a.greenButton, a.redButton, button{
    max-width:100%;
    box-sizing:border-box;
  }

  /* Font-size floor: nothing smaller than 14px (≈.875rem) on body text */
  body{ font-size:12px; }

  /* Input/select floor */
  input, select{
    font-size:1rem !important;
  }

  /* Card grid always single-column at 360 */
  .shoppingCartTable tr:not(.colHeading):not(.totals){
    grid-template-columns:1fr !important;
  }

  /* Plan cell full-width (already set, but make explicit) */
  .shoppingCartTable td{ grid-column:1 !important; }
}

/* Close the outer @media (max-width:799px) block opened by Section 5
   (PremiumSummary). The nested 480px and 359px blocks above close their
   own @media wrappers, but the Section 5 outer block was missing its
   final }. Without this, every subsequent rule in the file is silently
   nested inside that @media and has no effect at desktop widths. */
}

/* =========================================================================
   2b. EECensus — unified div-card layout (mobile, < 800px)
   Same .censusList/.censusGroup/.censusEmpRow/.censusDepRow structure
   used by the desktop grid (sg_census_table.css).
   Flex-wrap layout: all cells full-width, edit+delete share a 50/50 row.
   ========================================================================= */

/* ---- Column header row: hidden on mobile ---- */
.censusColHeaders{ display:none; }

/* ---- List container ---- */
.censusList{
  margin:0 0 1em;
}

/* ---- Section title ---- */
.censusSectionTitle{
  background:#0B5EA2;
  border-radius:9px;
  overflow:hidden;
  margin-bottom:1em;
}
.censusSectionH2{
  color:#fff;
  font-family:'Costco Sans Micro','apple-system','BlinkMacSystemFont','Segoe UI','Roboto',sans-serif;
  font-weight:600;
  font-size:1.6em;
  margin:0;
  padding:.75em 1em;
}

/* ---- Employee group wrapper ---- */
.censusGroup{
  border:1px solid #b3ccec;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 1px 4px rgba(0,93,171,.10);
  margin-bottom:1.25em;
}

/* ---- Employee row: flex-wrap so cells stack, buttons pair up ---- */
.censusEmpRow{
  background:#fff;
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:stretch;
}

/* Card header: full-width blue bar */
.censusCardHeader{
  flex:0 0 100%;
  width:100%;
  background:#0078c7;
  color:#fff;
  font-size:1.2em;
  font-weight:700;
  margin:0;
  padding:.6em 1em;
  letter-spacing:.01em;
  box-sizing:border-box;
}

/* All data cells: full-width label/value row */
.censusEmpRow .censusCell{
  flex:0 0 100%;
  width:100%;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.5em;
  padding:.38em 1em;
  border-bottom:1px dotted #dbe9f9;
  box-sizing:border-box;
}

/* Hide the # cell — shown in the card header instead */
.censusEmpRow .censusCell--num{ display:none; }

/* Edit/Delete: half-width side-by-side, with padding so links look like inset buttons */
.censusEmpRow .censusCell--edit,
.censusEmpRow .censusCell--delete{
  flex:0 0 50%;
  width:50%;
  display:flex;
  align-items:center;
  border-bottom:none;
  box-sizing:border-box;
  background:#f7fafd;
  border-top:1px solid #d8e2ec;
  padding:.55em .35em;
}
.censusEmpRow .censusCell--edit  { padding-left:.65em;  padding-right:.2em; }
.censusEmpRow .censusCell--delete{ padding-left:.2em;   padding-right:.65em; }

/* ---- Action links: actual rounded buttons ---- */
.censusActionLink{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45em;
  flex:1 1 auto;
  width:100%;
  min-height:44px;
  font-weight:700;
  font-size:1.05em;
  letter-spacing:.04em;
  text-decoration:none;
  text-transform:uppercase;
  transition:background .18s ease;
  border-radius:6px;
  box-sizing:border-box;
}
.censusActionLink--edit{
  background:#005dab;
  color:#fff;
}
.censusActionLink--edit:hover,
.censusActionLink--edit:focus{ background:#004386; color:#fff; }
.censusActionLink--delete{
  background:#DE2127;
  color:#fff;
  border-left:1px solid rgba(255,255,255,.25);
}
.censusActionLink--delete:hover,
.censusActionLink--delete:focus{ background:#b81118; color:#fff; }
.censusActionLink:focus-visible{
  outline:3px solid #ffbf47;
  outline-offset:2px;
}

/* FA icons inside buttons: force white so they show on coloured backgrounds */
.censusActionLink .fa{
  color:#fff !important;
  font-size:1em;
}

/* Action label text: visible on mobile */
.censusActionLabel{ display:inline; }

/* ---- Cell label (left) and value (right) ---- */
.censusLabel{
  flex:0 0 45%;
  font-size:.88em;
  font-weight:700;
  color:#005dab;
  text-transform:uppercase;
  letter-spacing:.02em;
  min-width:0;
}
.censusVal{
  flex:1 1 auto;
  text-align:right;
  font-weight:500;
  color:#222;
  min-width:0;
}

/* ---- Dependent sub-cards ---- */
.censusDepRow{
  background:#F9FcFD;
  border-top:1px solid #cccccc;
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
}

.censusDependentHeader{
  flex:0 0 100%;
  width:100%;
  background:#f9f9f9;
  color:#333333;
  font-size:1.05em;
  font-weight:700;
  margin:0;
  padding:.4em 1em;
  border-bottom:1px solid #dbe9f9;
  box-sizing:border-box;
}

.censusDepRow .censusCell{
  flex:0 0 100%;
  width:100%;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.5em;
  padding:.38em 1em;
  border-bottom:1px dotted #dbe9f9;
  box-sizing:border-box;
}

/* These dependent fields are structurally empty — hide on mobile */
.censusDepRow .censusCell--num,
.censusDepRow .censusCell--status,
.censusDepRow .censusCell--spouse,
.censusDepRow .censusCell--child,
.censusDepRow .censusCell--zip,
.censusDepRow .censusCell--edit,
.censusDepRow .censusCell--delete{ display:none; }

/* ---- Add Group Member row ---- */
.censusAddRow{
  text-align:right;
  padding:.75em 0 .4em;
}
.censusAddRow .blueButton::before{
  content:"+ ";
  font-weight:700;
}

/* ---- 360px floor ---- */
@media only screen and (max-width:360px){
  .censusCardHeader{ font-size:1.05em; }
  .censusLabel{ font-size:.82em; }
  .censusActionLink{ font-size:1em; }
  .censusEmpRow .censusCell--edit,
  .censusEmpRow .censusCell--delete{ flex:0 0 50%; width:50%; }
}


/* =========================================================================
   SECTION 18 - Premium Summary pages (SmallGroups_PremiumSummary.html,
                PremiumSummary.html popup, ExecPremiumSummary.html popup)
   Rules outside media queries apply at ALL viewport widths.
   ========================================================================= */

/* ── Total rows: white background + bold (replaces trLightGrey1+Grey333) ── */
.psTotalRow{
  background:#f9f9f9;
}
.psTotalRow th,
.psTotalRow td{
  font-weight:700 !important;
  color:#1a1a1a;
}

/* ── Table section title (replaces colspan=6 header row inside table) ── */
/* Sits above the .tableScrollWrap so it never scrolls away with the data */
.psTableTitle{
  background:#0b5ea2;
  color:#fff;
  font-size:1.15em;
  font-weight:700;
  line-height:1.3;
  padding:.55em .85em;
  margin:1.25em 0 0;
  border-radius:4px 4px 0 0;
  white-space:normal;
  word-break:break-word;
}
/* Remove any top gap between title div and scroll wrapper */
.psTableTitle + .tableScrollWrap{
  margin-top:0;
}

/* ── Sticky-column bg for psTotalRow so white shows through on scroll ── */
@media only screen and (max-width:899px){
  .compareTable .psTotalRow .tdRowHeading{
    background:#f9f9f9;
  }
  /* Ensure planDetailTableHdrDarkBlue cells wrap on narrow viewports */
  .compareTable .planDetailTableHdrDarkBlue{
    white-space:normal;
    word-break:break-word;
  }

  /* ── Every first-column cell in Employee Premium Details tables ──
     .psTableTitle + .tableScrollWrap uniquely targets the 6-column
     premium summary employee tables (not the 2-col summary table or
     plan detail tables that use compareTable).
     EVERY row's first cell is made sticky and given a light-blue bg
     so it stays visible and opaque as the table scrolls right.       */
  .psTableTitle + .tableScrollWrap .compareTable tr > td:first-child,
  .psTableTitle + .tableScrollWrap .compareTable tr > th:first-child{
    position:sticky;
    left:0;
    z-index:2;
    background:#eff7ff;    /* light blue – sticky column identity */
  }
  /* planDetailTableHdrLightBlue Census header keeps its medium blue */
  .psTableTitle + .tableScrollWrap .compareTable
    .planDetailTableHdrLightBlue th:first-child{
    background:#4079B9;    /* restore header row color */
    z-index:3;
  }
  /* psTotalRow sticky cell keeps its grey-white tone */
  .psTableTitle + .tableScrollWrap .compareTable
    .psTotalRow td:first-child,
  .psTableTitle + .tableScrollWrap .compareTable
    .psTotalRow th:first-child{
    background:#f9f9f9;
  }
}

/* ── Popup-specific adjustments (≤799px, inside .pad25) ── */
@media only screen and (max-width:799px){
  .psTableTitle{
    font-size:1.1rem;   /* rem bypasses .pad25 fsize chain */
    margin:.75em 0 0;
  }
  /* planTileDetail inside .pad25 popup context */
  .pad25 .planTileDetail{
    margin:0 0 1em;
  }
}

/* =========================================================================
   COLORBOX FRAME – allow close button to display outside the popup border.
   #colorbox and #cboxWrapper have overflow:hidden in colorbox.css which
   clips the absolutely-positioned close button. Making them overflow:visible
   lets the button sit outside the frame while #cboxContent still clips the
   iframe content (it has its own overflow rule).
   ========================================================================= */
#colorbox,
#cboxWrapper{
  overflow:visible !important;
}

/* =========================================================================
   COLORBOX CLOSE BUTTON – dark navy, red on rollover (all widths).
   Overrides the close_icon.png background-image from colorbox.css.
   The #cboxClose element is injected into the main page by colorbox.js,
   so this rule lives in mobile.css (loaded by all SmallGroups pages).
   ========================================================================= */
#cboxClose{
  background-image:none !important;
  background-color:#0b5ea2 !important;
  border-radius:50% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  top:-13px !important;
  right:-10px !important;
  box-shadow:0 2px 8px rgba(0,0,0,.3) !important;
  transition:background-color .18s ease !important;
  cursor:pointer !important;
  text-indent:0 !important;
}
#cboxClose::after{
  content:'\00d7';   /* × multiplication sign */
  color:#fff;
  font-size:1.45rem;
  font-weight:700;
  line-height:1;
  pointer-events:none;
}
#cboxClose:hover,
#cboxClose:focus{
  background-color:#DE2127 !important;
  outline:none !important;
}
#cboxClose:focus-visible{
  outline:3px solid #ffbf47 !important;
  outline-offset:2px !important;
}

/* ============================================================
   SECTION 19 - Miscellaneous Detail Page Mobile Adjustments
   ============================================================ */

/* ---- Global form-field boxes (all mobile screens) ----
   theme.css styles text inputs/selects with only a bottom border + a
   transparent background, so on mobile they read as underlines rather
   than fields (per the Individuals hero form screenshot). Give every
   text-like input, select and textarea a full outline + 5px radius +
   >=44px tap height on phones. Focus highlighting already exists in
   theme.css (input:focus / select:focus) and is intentionally NOT
   overridden here. Checkboxes/radios/buttons are excluded. */
@media only screen and (max-width:799px){
  input[type="text"],
  input[type="number"],
  input[type="email"],
  input[type="tel"],
  input[type="date"],
  input[type="password"],
  input[type="search"],
  input:not([type]),
  select,
  textarea{
    border:1px solid #0B5EA2 !important;
    border-radius:5px !important;
    background-color:#fff !important;
    min-height:44px;
    box-sizing:border-box;
    padding:.4em .6em;
  }
  textarea{ min-height:6em; }
  .hmSGWMArrows {display:none;}	
	.boxVertMargin{margin-top: 0; margin-bottom: 0;}	
}

/* ---- Detail-page hero banners + forms (IF + SG *Detail_Pg_* pages) ----
   Every one of these hero wrappers (.IF*HeroWrapper / .SG*HeroWrapper)
   shares the same desktop pattern: a fixed height:30em box with the
   white .benefitHeroContent card position:absolute'd to its bottom.
   On a phone the fixed height clips and the absolute card (being out of
   normal flow) can't make the wrapper grow, so stacked content overflows.
   Fix mirrors Section 8's .homeHeroContent.Individuals approach:
   wrapper -> height:auto, card -> position:static so the wrapper grows
   to contain it, and the hero form (where present, e.g. Dental) stacks
   one field per row with >=44px targets. */
@media only screen and (max-width:799px){
  .IFMedicalHeroWrapper,
  .IFDentalHeroWrapper,
  .IFVisionHeroWrapper,
  .IFShortTermHeroWrapper,
  .IFLifeHeroWrapper,
  .IFAccidentHeroWrapper,
  .IFCriticalIllnessHeroWrapper,
  .IFHospitalHeroWrapper,
  .SGMedicalHeroWrapper,
  .SGICHRAHeroWrapper,
  .SGDentalHeroWrapper,
  .SGVisionHeroWrapper,
  .SGLifeHeroWrapper,
  .SGDisabilityHeroWrapper{
    height:auto !important;
    padding:1.25em 0;
    background-position:center top;
  }

  .benefitHeroContent{
    position:static;
    width:92%;
    margin:0 auto;
    box-sizing:border-box;
    font-size:1.25em;
    border-radius:.5em;   /* all four corners now it isn't pinned to the wrapper bottom */
  }

  /* Hero form (Dental has real fields; others are just a CTA button) */
  .benefitHeroContent form{ width:100%; box-sizing:border-box; }
  .benefitHeroContent form label{ display:block; margin:.5em 0 .2em; font-size:1rem; }
  .benefitHeroContent form select,
  .benefitHeroContent form input{
    width:100% !important; max-width:22em; box-sizing:border-box;
    min-height:44px; margin-top:.15em; font-size:1rem;
  }
  .benefitHeroContent form br{ display:none; }
  /* Hero CTA button: full-width, un-floated, 48px */
  .benefitHeroContent .largeGroupHeroButton{
    float:none !important; display:block;
    width:100%; max-width:22em; margin:1em auto 0 !important;
    min-height:48px; box-sizing:border-box; text-align:center;
    display:flex; align-items:center; justify-content:center;
  }
}

/* ---- LFA Overview hero (SmallGroups_LFA_Overview.html) ----
   .LFAContentWrapper is a fixed height:31.375em hero. theme.css already
   shrinks the font at <=820px but never lets the box grow, so the H1 +
   CTA can clip on a phone. Let it grow and un-float the CTA. */
@media only screen and (max-width:799px){
  .LFAContentWrapper{
    height:auto !important;
    padding-bottom:1.25em;
    background-position:left top;
  }
  .LFAHeroContent{ width:100%; box-sizing:border-box; }
  .LFAHeroText{ padding-left:.75em; padding-right:.5em; }
  .LFAContentWrapper .redButton{
    float:none !important; display:inline-block; text-align:center;
    min-height:44px; box-sizing:border-box; margin-left:.75em;
  }
}

@media only screen and (max-width:560px){
	.benefitHeroContent{font-size:1.5em;}
	.benefitHeroContent h1{font-size: 1.25em;}
	.largeGroupHeroButton {font-size:1.4em;}
	.comparisonTable{font-size: .84em;}
	.comparisonTable td, .comparisonTable th, .comparisonTable th.tophdr{padding:5px;}
	.comparisonTable th.tophdr, .comparisonTable th{font-size: 1.2em;}
	.homeContent h2{font-size:  1.6em;}	
}


@media only screen and (max-width:389px){
	.benefitHeroContent{font-size:1.4em;}
	.benefitHeroContent h1{font-size: 1.25em;}
	.comparisonTable{font-size: .75em;}
	
}


  /* ---- Medicare funnel embedded card (Individuals_Medicare_Quote_01.html) ----
     At mobile widths the card can't stay at 52% width alongside the hero photo.
     Stack full-width inside the hero wrapper; the background photo shows behind
     the card or collapses once the card covers the full banner width. ---- */
  .mfEmbed{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
  }
  /* Unwrap the hero wrapper's flex so the card stacks normally */
  body.cbcSite .quoteContentWrapperForm.Medicare{
    display:block !important;
    padding:1em 0 !important;
  }
  body.cbcSite .quoteContent{
    padding:0 4% !important;
  }


/* =========================================================================
   SECTION 20 - Carrier Partner pages
   (Individuals_Carriers.html, SmallGroups_Carriers.html,
   LargeGroups_Carriers.html)

   Shared template: a big blue .staticContentHdr title (now marked up as
   <h1> on all three pages), a bordered .staticContentDiv panel, and one or
   more .carrierTable tables (logo + name/address, 2 fixed-width columns).
   SmallGroups_Carriers.html additionally has an A-Z jump nav (.glossy_top /
   .glossy_hed) and repeated "Top" links (.top_links) between letter groups.

   None of these classes had prior mobile rules - the two-column table and
   the 26-cell single-row A-Z nav simply didn't fit on a phone.
   ========================================================================= */
@media only screen and (max-width: 799px){

  /* Page title: scale down from the desktop 2.688em so it doesn't force
     horizontal scroll on narrow phones. Still well above any other
     heading on the page (h2 mobile-nav labels, h3 - none on this page). */
  .staticContentHdr{
    font-size:2rem !important;
    line-height:1.25;
    padding:.6em .55em;
  }

  /* Content panel: desktop padding (2em) and font-size (1.4em) eat too
     much of a phone's width. Keep body text safely above the .9em floor. */
  .staticContentDiv{
    padding:1em .7em;
    font-size:1rem;
    box-sizing:border-box;
  }

  /* Carrier table: stack logo above name/address instead of two fixed-
     width side-by-side columns (34/66% etc. - too narrow to be legible
     under ~360px). One visible divider per complete row, not per cell. */
  .carrierTable,
  .carrierTable tbody,
  .carrierTable tr,
  .carrierTable td{
    display:block;
    width:100%;
    box-sizing:border-box;
  }
  .carrierTable tr{
    border-bottom:1px solid #ccc;
    padding:.75em 0 1em;
  }
  .carrierTable tr:last-child{ border-bottom:none; }
  .carrierTable td{
    border-bottom:none;   /* was set per-cell in theme.css; moved to tr above */
    padding:.3em 0;
    text-align:center;
  }
  .carrierTable img{
    display:block;
    margin:0 auto .5em;
    max-height:3em;
  }

  /* A-Z jump nav (SmallGroups_Carriers.html): 26 cells at width:3.8% each
     are unusable on a phone - wrap them into a proper tap-target grid. */
  .glossy_top{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    width:100%;
  }
  .glossy_top .glossy_hed{
    display:flex;
    width:auto;
    min-width:44px;
    min-height:44px;
    flex:0 0 auto;
    padding:.2em .3em;
    font-size:1rem;
  }
  .glossy_top .glossy_hed a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    min-height:44px;
  }

  /* "Top" links between lettered sections: theme.css padding (8px 24px)
     plus a 1em line-height computes to ~35px total - short of 44px. */
  .top_links{
    min-height:44px;
    padding:.85em 1.1em;
    box-sizing:border-box;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  /* "Go back to small group quoting" link above the A-Z nav
     (SmallGroups_Carriers.html): text-only anchor with no vertical
     padding - add a tap-height floor without changing its inline flow. */
  .content .floatLeft.fsize1_25 a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:.3em 0;
  }
}


/* =========================================================================
   SECTION 21 - SmallGroups_TC_SGMap.html filter controls
   "Coverage Type:" / "Carrier:" selects sit float-left with a desktop-only
   -6px nudge and a bare <br> between them; the "Coverage / No Coverage"
   map-color legend sits float-right beside them. On a phone all of this
   collapses into one cramped, overlapping cluster. Scoped via direct-child
   selectors under .staticContentDiv - both blocks are unique to this page
   (verified: single occurrence each), so no wrapper div was needed.
   ========================================================================= */
@media only screen and (max-width: 799px){

  /* Filter block: un-float, let each label+select take its own full-width row */
  .staticContentDiv > .floatLeft.alignRight{
    float:none;
    display:block;
    width:100%;
    text-align:left;
  }
  /* The desktop <br> between "Coverage Type" and "Carrier" is redundant
     once the selects below are full-width blocks - hide it to avoid an
     extra blank line, spacing is handled by the select's own margin. */
  .staticContentDiv > .floatLeft.alignRight br{ display:none; }

  .staticContentDiv > .floatLeft.alignRight .selectContainer{
    display:block;
    width:100%;
    height:auto;
    overflow:visible;
    position:static;
    margin:.35em 0 .9em !important;   /* overrides inline margin-top:-6px */
  }
  .staticContentDiv > .floatLeft.alignRight select{
    width:100% !important;
    min-height:44px;
    border:1px solid #358DD9;
    border-radius:5px;
    padding:.5em .6em;
    box-sizing:border-box;
    background-color:#fff;
  }

  /* Map-color legend: un-float, lay the two swatches side by side below
     the filters instead of colliding with them. */
  .staticContentDiv > .floatRight{
    float:none;
    display:flex;
    gap:.6em;
    flex-wrap:wrap;
    margin:0 0 1em;
  }
  .staticContentDiv > .floatRight .keyBlockDarkBlue,
  .staticContentDiv > .floatRight .keyBlockGrey{
    width:auto !important;   /* overrides inline width:7em */
    flex:1 1 auto;
    text-align:center;
  }
  .staticContentDiv > .floatRight .marginLeft1em{ margin-left:0; }
}


/* =========================================================================
   SECTION 22 — SmallGroups_LFA_Overview.html: Rx pharmacy comparison table
   The 4-column .comparisonTable.fsize_65em inherits font-size through
   .homeContent (1.75em) → fsize_65em (.65em !important) → td (1.25em) =
   ~21px computed — with padding:1em that makes each cell ~43px wide just
   for padding alone. Four columns × 43px = 172px padding before any text.
   Fix: target the class pair to break the em chain with rem units +
   tighten padding. Specificity 0,2,1 beats both .comparisonTable td
   (0,1,1) and the fsize1em !important on the th elements (handled by
   adding our own !important on font-size only).
   Corner badge: 60px triangle overflows a narrow mobile th, causing the
   hypotenuse to be clipped at the cell right edge (flat extension).
   Fix: reduce --size to 32px + add overflow:hidden on the th.
   ========================================================================= */
@media only screen and (max-width:799px){

  /* Table: override the width="95%" HTML attribute; word-break so long
     header text ("AT COSTCO PHARMACY", "AT RETAIL PHARMACY") wraps
     inside narrow columns rather than forcing the table wider. */
  .comparisonTable.fsize_65em{
    width:100% !important;
    box-sizing:border-box;
    word-break:break-word;
  }

  /* Break the em inheritance chain with rem — these values are absolute
     regardless of .homeContent's 1.75em scaling. 0.85rem = 13.6px at
     the 16px root — above the practical 11px AA floor.
     !important required to override fsize1em's "font-size:1em !important"
     that is present on the th elements in the HTML. */
  .comparisonTable.fsize_65em td,
  .comparisonTable.fsize_65em th{
    padding:6px 5px;
    font-size:0.85rem !important;
    white-space:normal;
    word-break:break-word;
  }
  .comparisonTable.fsize_65em th.tophdr{
    font-size:0.85rem !important;
    padding:6px 5px;
    position:relative;   /* re-affirm so corner-badge position:absolute
                             anchors to this cell, not a distant ancestor */
    overflow:hidden;     /* clip the badge triangle cleanly at the cell
                             boundary — without this the hypotenuse is
                             clipped by the adjacent cell rendering as
                             a flat vertical edge ("flat extension"). */
  }

  /* Corner badge: reduce from the default 60px to 32px so the right-
     angle triangle fits fully within the narrow mobile th. The SVG star
     positions are computed from --size via calc() in theme.css, so
     updating the three border/position values here is sufficient. */
  .comparisonTable.fsize_65em .corner-badge{
    --size:32px;
    border-top:var(--size) solid #d61f2a;
    border-left:var(--size) solid transparent;
  }
  .comparisonTable.fsize_65em .corner-badge svg{
    top:calc(var(--size) * -0.82);
    right:calc(var(--size) * 0.18);
    width:calc(var(--size) * 0.35);
    height:calc(var(--size) * 0.35);
  }
}

@media only screen and (max-width:389px){
  /* Tighten further at the 360px floor: 0.80rem = 12.8px — above floor. */
  .comparisonTable.fsize_65em td,
  .comparisonTable.fsize_65em th,
  .comparisonTable.fsize_65em th.tophdr{
    padding:4px 3px;
    font-size:0.80rem !important;
  }
}


/* =========================================================================
   SECTION 23 — Content pages: CCPA.html / PrivacyPolicy.html /
   InterestBasedAds.html / sitemap.html

   Root cause (shared across all four pages): theme.css uses a CSS table
   layout — .divTable(display:table) > .divTR(table-row) > .staticContentDiv
   (table-cell). A table-cell expands to fit its content, so when a wide
   compareTable or a set of floated form fields lives inside it, the cell
   (and therefore the page) blows past the viewport on mobile.

   Three distinct issues fixed here:
   a) CSS table layout blown out by wide children (all four pages).
   b) compareTable column min-width forces 384px+ on 360px viewport
      (PrivacyPolicy, InterestBasedAds).
   c) CCPA form: State selectContainer + Zip textInputDiv both float:left,
      clashing with selectContainer overflow:hidden (same root cause as
      createAccount popups).
   d) Sitemap: three 30%-wide float:left columns with no tap-height on links.
   ========================================================================= */
@media only screen and (max-width:799px){

  /* ── a) CSS table layout → block flow ──────────────────────────── */
  /* Convert display:table/table-row/table-cell to plain block so
     no child can force the container wider than the viewport. */
  .divTable{
    display:block !important;
    width:100%;
    box-sizing:border-box;
  }
  .divTR{
    display:block !important;
    width:100%;
  }
  .staticContentDiv{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box;
  }

  /* ── b) compareTable inside content pages ───────────────────────── */
  /* Section 13 (<=899px) already makes .compareTable display:block;
     overflow-x:auto and sets min-width:8em on cells. Three cols x 8em
     (128px) = 384px — wider than 360px viewport before any content.
     Scope an override to .staticContentDiv context only: reduce to 4em
     and add word-break so text/URLs wrap rather than expanding the table.
     Specificity 0,2,1 beats Section 13 0,1,1 cleanly without !important. */
  .staticContentDiv .compareTable td,
  .staticContentDiv .compareTable th{
    min-width:4em;
    word-break:break-word;
    overflow-wrap:break-word;
  }

  /* ── c) CCPA form: un-float field containers ─────────────────────── */
  /* .textInputDiv is float:left in theme.css; un-float on mobile so
     each field stacks full-width. Section 19 already handles
     border/radius/44px/padding on inputs — only float + width added. */
  .textInputDiv{
    float:none !important;
    display:block !important;
    width:100% !important;
    box-sizing:border-box;
    line-height:1.5;
  }
  .textInputDiv label{
    display:block;
    margin-bottom:.25em;
  }
  /* Override inline style widths on every text/email/tel input in
     the form (Full Name:14em, Address:15em, Zip:6em, etc.) */
  .disclaimer_main form input[type="text"],
  .disclaimer_main form input[type="email"],
  .disclaimer_main form input[type="tel"]{
    width:100% !important;
    max-width:100%;
  }

  /* State label + selectContainer sit outside .textInputDiv — same fix.
     The selectContainer also needs the overflow/height/position reset
     from theme.css (.selectContainer: height:1.5em; overflow:hidden;
     position:relative; top:6px) to stop it clipping the dropdown. */
  label.floatLeft[data-group="State"]{
    float:none !important;
    display:block;
    margin:.75em 0 .25em;
  }
  div.selectContainer.floatLeft[data-group="State"]{
    float:none !important;
    display:block !important;
    width:100% !important;
    height:auto !important;       /* was 1.5em */
    overflow:visible !important;  /* was hidden */
    position:static !important;   /* was relative top:6px */
    margin:.0 0 .75em !important; /* clear the inline margin-top:1px */
  }
  div.selectContainer.floatLeft[data-group="State"] select{
    width:100% !important;
    max-width:100%;
  }

  /* ── d) Sitemap: 30% float columns → full-width stacked ──────────── */
  .disclaimer_main > div[style*="float:left"]{
    float:none !important;
    width:100% !important;
    padding-right:0 !important;
    box-sizing:border-box;
  }
  /* Tighten the <p> margins so links are compact but not crowded */
  .disclaimer_main > div[style*="float:left"] p{
    margin:.1em 0;
    padding:0;
  }
  /* 44px tap targets: each sitemap link is in a <p> — use flex
     so the anchor fills the line and vertically centers the text. */
  .disclaimer_main > div[style*="float:left"] p a{
    display:flex;
    align-items:center;
    min-height:44px;
    padding:.2em 0;
    box-sizing:border-box;
    line-height:1.3;
  }
  /* Section headings get a blue underline to separate groups clearly */
  .disclaimer_main > div[style*="float:left"] h3{
    margin:1em 0 .35em;
    padding:.4em 0;
    border-bottom:2px solid #005dab;
  }
  /* First section heading needs no top margin */
  .disclaimer_main > div[style*="float:left"]:first-child h3{
    margin-top:0;
  }
}


/* =========================================================================
   SECTION 24 — Blog pages (Blog_*.html + Blog_Archives.html)
   ========================================================================= */
@media only screen and (max-width:799px){

  /* ── blogContent: remove desktop positioning/sizing ──────────────── */
  .blogContent{
    position:static !important;
    top:0 !important;
    min-width:0 !important;
    min-height:0 !important;
    width:100%;
    box-sizing:border-box;
    z-index:auto;
  }

  /* ── blogHeaderBar: simple blue bar, no pseudo-element ───────────── */
  .blogHeaderBar{
    background:#0b5ea2 !important;
    overflow:hidden;
  }
  .blogHeaderBar::before{
    display:none !important;
  }
  /* The .content div inside blogHeaderBar has min-height:340px from
     theme.css — this creates the large empty blue area after "Health News".
     Collapse it to content height. */
  .blogHeaderBar .content{
    min-height:0 !important;
    min-width:0 !important;
  }

  /* "Health News" watermark */
  .blogTitle{
    font-size:2rem;
    line-height:1.6;
    padding-left:.75rem;
    display:block;
  }

  /* ── Main article column: NO horizontal padding ──────────────────── */
  /* Padding is removed at the column level so the h1 and img can span
     full column width without negative-margin arithmetic. Side padding
     is restored on text content via direct-child selectors below. */
  .blogLargeCol{
    width:100% !important;
    float:none !important;
    font-size:1rem;
    padding:0 0 .75em 0;
    box-sizing:border-box;
	margin:0;  
  }

  .blogLargeCol .accordion{
	width:92vw;  
	margin:4vw;  
	}

  /* Full-width blue h1 title panel — no negative margins needed since
     the column itself has no horizontal padding. */
  .blogLargeCol > h1:first-child{
    background-color:#0b5ea2;
    padding:.6em .75rem;
    margin:0 0 .5em;
    width:100%;
    box-sizing:border-box;
    font-size:1.4rem !important;
    line-height:1.3;
    color:#fff;
  }
  .blogLargeCol > h1:first-child span{
    font-size:.85em;
    display:block;
    font-weight:300;
    margin-top:.25em;
  }

  /* Restore .75rem side padding to direct-child text content.
     Uses > (direct-child) so blogLargeColHeader's children — which
     already have their own padding — are not double-padded. */
  .blogLargeCol > p,
  .blogLargeCol > h2,
  .blogLargeCol > h3,
  .blogLargeCol > h4,
  .blogLargeCol > ul,
  .blogLargeCol > ol,
  .blogLargeCol > blockquote,
  .blogLargeCol > table{
    padding-left:.75rem;
    padding-right:.75rem;
    box-sizing:border-box;
  }
  /* Images fill the full column width */
  .blogLargeCol > img{
    width:100%;
    display:block;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  /* .blogLargeColHeader wrapper (Blog_04_11_2022): un-clip titles.
     Its own padding (.6em .75rem) already handles side spacing — the
     > combinator above keeps its h1/h2 children from getting extra padding. */
  .blogLargeColHeader{
    height:auto !important;
    overflow:visible !important;
    padding:.6em .75rem;
    box-sizing:border-box;
    width:100%;
  }
  .blogLargeColHeader h1{
    font-size:1.4rem !important;
    line-height:1.3;
    margin:.1em 0;
  }
  .blogLargeColHeader h2{
    font-size:1rem !important;
    margin:.2em 0 0;
  }

  /* Body text hierarchy */
  .blogLargeCol p,
  .blogLargeCol li{
    font-size:1rem;
    line-height:1.55;
  }
  .blogLargeCol h2{
    font-size:1.25rem;
  }
  .blogLargeCol h3{
    font-size:1.1rem;
  }

  /* ── Sidebar / archive column: full-width stacked ──────────────────── */
  .blogSmallCol{
    width:100% !important;
    float:none !important;
    margin:0 !important;
    padding:.5em .75rem;
    box-sizing:border-box;
    font-size:1rem;
  }
  .blogSmallCol h2{
    font-size:1.25rem;
    padding-top:.75em;
  }
  .blogSmallCol h3{
    font-size:1rem;
  }

  /* ── Tile cards: single-column, flex ─────────────────────────────── */
  .recentBlogPost{
    width:100% !important;
    float:none !important;
    margin-right:0 !important;
    height:auto !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column;
    margin-bottom:1.25em;
  }
  .recentBlogPost img{
    width:100%;
    height:auto;
    display:block;
    flex-shrink:0;
  }
  .recentBlogPost > br{
    display:none;
  }
  .recentBlogPost h3{
    font-size:1rem;
    padding:.45em .7em .3em;
    flex:1;
  }
  .recentBlogPost .redButton,
  .recentBlogPost .blueButton{
    position:static !important;
    display:inline-block;   /* was inline-flex - see the Save for Later note
                                near the top of this file for why; .redButton
                                has no display in its own theme.css base rule
                                (defaults to plain `inline`, which ignores
                                min-height), so this is restated explicitly
                                rather than left to fall back */
    text-align:center;
    float:none !important;
    align-self:flex-end;    /* .recentBlogPost is its OWN flex column
                                (display:flex!important above); this pins the
                                button to its bottom regardless of the
                                button's own display value, which only ever
                                governs ITS OWN children, not its position in
                                its parent's flex layout */
    min-height:44px;
    margin:.3em .5em .5em;
    box-sizing:border-box;
  }

  /* ── Blog Archives blue hero: collapse .content min-height ────────── */
  div[style*="height:292px"]{
    height:auto !important;
    padding:.75em 0;
  }
  div[style*="height:292px"] .content{
    min-height:0 !important;
    min-width:0 !important;
  }
  div[style*="height:292px"] h1{
    font-size:1.75rem !important;
    margin-top:0 !important;
    margin-left:.75rem;
  }
}

@media only screen and (max-width:389px){
  .blogTitle{
    font-size:1.6rem;
  }
  .blogLargeCol > h1:first-child,
  .blogLargeColHeader h1{
    font-size:1.2rem !important;
  }
}




/* =========================================================================
   SECTION 25 — LargeGroups_Case_Studies.html
   Page reuses the shared .divTable > .divTR > .staticContentHdr /
   .staticContentDiv template (see Section 20/23), plus a floated hero
   photo and six .shoppingCartTable "Case Study" tables — five with a
   <caption class="tableTitle2">, the sixth using a
   <td class="QLEdarkBlueHdrBlock"> row instead of a caption.

   Every selector below is scoped to markup unique to this page (the hero
   photo's src / inline offset, or .shoppingCartTable nested inside
   .staticContentDiv) rather than to the bare shared classes, so nothing
   here touches the Carrier pages (Section 20) or Content pages
   (Section 23) that reuse the same .staticContentHdr/.staticContentDiv
   template.
   ========================================================================= */
@media only screen and (max-width:799px){

  /* ---- a) "Case Studies" H1: full width -------------------------------
     Section 23 blockifies .divTable/.divTR/.staticContentDiv, but the H1
     sits in its OWN .divTR, above (not inside) .staticContentDiv, and was
     never included. Left at its default display:table-cell with no table/
     table-row ancestor, it becomes an orphaned cell that shrinks to fit
     "Case Studies" instead of filling the row — the blue bar rendered far
     short of the panel's width. Same root cause, same fix, for each
     "Case Study N" <caption> and Case Study 6's dark-blue header td. ---- */
  .divTable:has(table.shoppingCartTable) .staticContentHdr{
    display:block !important;
    width:100% !important;
    box-sizing:border-box;
  }
  .staticContentDiv .shoppingCartTable caption.tableTitle2{
    display:block;
    width:100%;
    box-sizing:border-box;
  }
  .staticContentDiv .shoppingCartTable td.QLEdarkBlueHdrBlock{
    display:block;
    width:100% !important;
    box-sizing:border-box;
  }

  /* ---- b) Hero photo: re-bleed to the mobile panel corner -------------
     The wrapping div is inline-styled float:right; position:relative;
     top:-2.03em; right:-2.03em — offsets sized for the desktop 2em
     .staticContentDiv padding so the photo bleeds flush to the panel's
     border. Section 20 shrinks that padding to 1em .7em on mobile, and
     the photo's fixed 348px width is wider than the padded content
     column, so the same desktop offset instead pushes the photo past the
     container's right edge. Re-bleed using the new mobile padding values
     and cap the photo to the available column width. ---- */
  .staticContentDiv div[style*="float:right"][style*="-2.03em"]{
    top:0 !important;
    right:0 !important;
    margin:-1em -.7em 0 0 !important;
  }
  .staticContentDiv div[style*="float:right"][style*="-2.03em"] img{
    width:100%;
    height:auto;
    display:block;
  }

  /* ---- c) Case Study tables: two labeled cards instead of a merged
     two-column table -----------------------------------------------------
     Neutralize the generic tr-card rule (Section 9) for this page's
     tables — bare .shoppingCartTable tr borders/pads the WHOLE row,
     which is what merged "Services Employed"/"Results" (two shrink-
     wrapped boxes, from <th width="50%"> — Section 9 only styles <td>)
     and the bullets + italic summary (no labels at all) into one box,
     and padded the View Details <tr> itself (see (d) below). ---- */
  /* !important throughout: Section 17's bare .shoppingCartTable tr rule
     (display:grid, 2-column) is higher specificity than a plain class
     selector here, and it only "accidentally" stacks below its own
     640px tier — between 640-799px it would render our two cards
     side-by-side as a 2-column grid instead. !important guarantees a
     single stacked column across the full 360-799px mobile range. */
  .staticContentDiv .shoppingCartTable tr{
    display:block !important;
    border:0 !important;
    border-radius:0 !important;
    margin:0 !important;
    padding:0 !important;
    background:none !important;
  }

  /* Hide the original column-heading rows — the <th> version (Case
     Studies 1-5) and the <td class="planDetailTableHdrLightBlue">
     version (Case Study 6). Their labels are re-added via ::before on
     the data cells below instead, so each label stays attached to its
     own content in a single card. */
  .staticContentDiv .shoppingCartTable tr:has(th.tableSubTitle),
  .staticContentDiv .shoppingCartTable tr:has(td.planDetailTableHdrLightBlue){
    display:none !important;
  }

  /* Each data cell becomes its own card: label on top, content below,
     one border wrapping both. */
  .staticContentDiv .shoppingCartTable td.Grey555,
  .staticContentDiv .shoppingCartTable td.black{
    display:block;
    width:100% !important;
    box-sizing:border-box;
    border:1px solid #ddd;
    border-radius:8px;
    margin:0 0 .7em;
    padding:.7em .85em;
    background:#fff;
  }
  .staticContentDiv .shoppingCartTable td.Grey555::before,
  .staticContentDiv .shoppingCartTable td.black::before{
    display:block;
    font-size:.85em;
    font-weight:700;
    color:#005DAB;
    text-transform:uppercase;
    letter-spacing:.02em;
    margin-bottom:.4em;
  }
  .staticContentDiv .shoppingCartTable td.Grey555::before{ content:"Services Employed"; }
  .staticContentDiv .shoppingCartTable td.black::before{ content:"Results"; }

  /* ---- d) View Details row: padding on the <td>, not the <tr> ---------
     Matches the TR=0/TD=all-spacing rule used elsewhere on this site.
     Section 9's generic tr-card rule put padding on the <tr>, which
     inset the grey bgcolor <td> short of the row's true edges on top of
     the td's own padding — a double-padding gap. ---- */
  .staticContentDiv .shoppingCartTable td[bgcolor]{
    display:block;
    width:100% !important;
    box-sizing:border-box;
    padding:.7em .85em;
    margin:0 0 1.4em;
    text-align:right !important;
  }
  /* 44px ADA tap target for the link itself, not just its text line */
  .staticContentDiv .shoppingCartTable td[bgcolor] a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }
}

/* =========================================================================
   SECTION 26 — Individuals_Resources_Glossary.html
   Page reuses the shared .divTable > .divTR > .staticContentHdr /
   .staticContentDiv template (see Section 20/23/25), plus the same
   .glossy_top / .glossy_hed A-Z jump-nav classes Section 20 already
   flex-wraps for SmallGroups_Carriers.html. Here, though, the 26
   .glossy_hed letter cells sit inside an EXTRA nested
   <div class="divTable width100"> between .glossy_top and the cells
   themselves. Section 20's .glossy_top{display:flex} only lays out its
   DIRECT child (that nested divTable) as a single flex item; Section 23's
   global .divTable{display:block!important} then blockifies that nested
   divTable, so each individually-flexed .glossy_hed (still matched by
   Section 20's descendant selector) renders as its own full-width flex
   row instead of wrapping into a grid — the tall stacked blue bars.

   All selectors below are scoped via .glossy_cnt (unique to this page's
   glossary-entry markup) so nothing here touches SmallGroups_Carriers.html,
   which reuses .glossy_top/.glossy_hed without the extra nested divTable.
   ========================================================================= */
@media only screen and (max-width:799px){

  /* ---- a) "Glossary" header: full width -------------------------------
     Same orphaned-table-cell fix as Section 25 - this page marks the
     title up as a <div>, not an <h1>, but it's the same .staticContentHdr
     class sitting in its own .divTR above .staticContentDiv, and gets
     left as a shrink-wrapped table-cell the same way. ---- */
 .staticContentHdr{
    display:block !important;
    width:100% !important;
    box-sizing:border-box;
  }

  /* ---- b) A-Z jump nav: condensed, tappable grid ----------------------
     Reworked per request: plain black letters, no background fill, laid
     out in a compact wrapped grid instead of the old blue
     table-row/table-cell bar. The nested divTable (the actual direct
     parent of the 26 .glossy_hed cells) becomes the grid container;
     Section 20's .glossy_top flex/background treatment is superseded
     here since it never reached the actual cells on this page anyway. */
 .glossy_top{
    display:block !important;
    background:none !important;
    width:100%;
  }
  .divTable:has(.glossy_top) .glossy_top .divTable{
    display:grid !important;
    grid-template-columns:repeat(auto-fill, minmax(44px,1fr));
    gap:.5em;
    width:100%;
    box-sizing:border-box;
    padding:.5em 0 1em;
  }
.glossy_top .glossy_hed{
    display:block !important;
    width:auto;
    height:auto;
    min-width:0;
    min-height:44px;
    padding:0;
    background:none !important;
  }
.glossy_top .glossy_hed a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    min-height:44px;
    box-sizing:border-box;
    border:1px solid #ccc;
    border-radius:6px;
    color:#000 !important;
    font-size:1.1rem;
    font-weight:700;
    text-decoration:none;
  }
}
