/* 0.36.4 — final mobile and arrow hardening. Loaded LAST on purpose. */

/*
 * UI arrows are geometry, never font glyphs.
 * This prevents Apple Color Emoji / Android emoji fallback for → / ↗ / ←.
 */
.ch-ui-arrow{
  display:inline-block!important;
  inline-size:1.05em!important;
  block-size:1.05em!important;
  flex:0 0 1.05em!important;
  vertical-align:-.14em!important;
  background:currentColor!important;
  -webkit-mask:none!important;
  mask:none!important;
  -webkit-clip-path:polygon(0 43%,68% 43%,68% 20%,100% 50%,68% 80%,68% 57%,0 57%)!important;
  clip-path:polygon(0 43%,68% 43%,68% 20%,100% 50%,68% 80%,68% 57%,0 57%)!important;
  font-size:1em!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-indent:0!important;
}
.ch-ui-arrow--left{transform:rotate(180deg)}
.ch-ui-arrow--external{transform:rotate(-45deg)}

/* Kill legacy font arrows injected by old styles. Current navigation already carries .ch-ui-arrow markup. */
.ch-mobile-nav nav a::after{content:none!important;display:none!important}

/* Legacy generated-arrow locations that do not have markup get a drawn arrow instead of a character. */
.ch-source-list a::after,
.hp-link::after,
.ch-wizard-magazin .ff-form :is(.ch-benefit-option__body,.ch-caregrade-option__body)::after{
  content:''!important;
  display:inline-block!important;
  inline-size:1em!important;
  block-size:1em!important;
  background:currentColor!important;
  -webkit-clip-path:polygon(0 43%,68% 43%,68% 20%,100% 50%,68% 80%,68% 57%,0 57%)!important;
  clip-path:polygon(0 43%,68% 43%,68% 20%,100% 50%,68% 80%,68% 57%,0 57%)!important;
  font-size:1em!important;
  line-height:1!important;
}
.ch-source-list a::after{margin-left:12px;color:var(--ch-green)}
.hp-link::after{margin-left:0;color:currentColor}
.ch-wizard-magazin .ff-form :is(.ch-benefit-option__body,.ch-caregrade-option__body)::after{
  position:absolute!important;
  right:4px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  color:#95a59f!important;
}

/* Body-level containment prevents an off-canvas child from widening the homepage viewport. */
html,
body.home,
body.home #main,
body.home .ch-home-edition{
  max-inline-size:100%;
}
body.home{overflow-x:hidden}
@supports (overflow:clip){body.home{overflow-x:clip}}

/* Topbar: never let trust copy + callback create a page-wide horizontal overflow. */
@media(max-width:1023px){
  .chp-top,
  .chp-top .chp-shell{max-inline-size:100%;overflow:hidden}
  .chp-top .chp-shell{min-width:0}
  .chp-top .chp-trusts{min-width:0;overflow:hidden}
  .chp-top .chp-trust{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ch-mobile-top-contact{min-width:0;max-width:none;flex:0 0 auto;white-space:nowrap}
  .ch-mobile-top-contact .ch-ui-arrow{flex:0 0 1em!important}
}

/* Homepage opening: deliberately stronger than all previous rules and loaded last. */
@media(max-width:760px){
  .ch-home-focus-start{
    box-sizing:border-box!important;
    inline-size:100%!important;
    max-inline-size:100%!important;
    overflow-x:hidden!important;
  }
  @supports (overflow:clip){.ch-home-focus-start{overflow-x:clip!important}}

  /* Margin-based shell avoids WebKit calc/min-content interactions. */
  .ch-site .ch-home-focus-start>.ch-shell{
    box-sizing:border-box!important;
    inline-size:auto!important;
    width:auto!important;
    max-inline-size:none!important;
    max-width:none!important;
    margin-inline:var(--chp-gutter)!important;
  }

  .ch-home-focus-start .ch-edition-heading{
    display:block!important;
    inline-size:100%!important;
    max-inline-size:100%!important;
    min-inline-size:0!important;
  }
  .ch-home-focus-start .ch-edition-heading>*,
  .ch-home-focus-start .ch-edition-heading>*>*,
  .ch-home-focus-start .ch-home-focus-routes,
  .ch-home-focus-start .ch-home-focus-route,
  .ch-home-focus-start .ch-home-focus-route__copy,
  .ch-home-focus-start .ch-home-focus-family-link{
    box-sizing:border-box!important;
    min-inline-size:0!important;
    max-inline-size:100%!important;
  }

  .ch-home-focus-start :is(.ch-edition-title,.ch-edition-lead,.ch-edition-rail>span,.ch-edition-rail>strong,.ch-home-focus-route__copy small,.ch-home-focus-route__copy strong,.ch-home-focus-route__copy>span,.ch-home-focus-family-link span,.ch-home-focus-family-link strong){
    max-inline-size:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    hyphens:auto;
  }

  .ch-home-focus-start .ch-home-focus-routes{display:grid!important;grid-template-columns:minmax(0,1fr)!important;inline-size:100%!important}
  .ch-home-focus-start .ch-home-focus-route{
    inline-size:100%!important;
    grid-template-columns:24px minmax(0,1fr) 18px!important;
    gap:12px!important;
    padding-inline:16px!important;
    overflow:hidden!important;
  }
  .ch-home-focus-start .ch-home-focus-route__arrow{justify-self:end;align-self:center}

  .ch-home-focus-start .ch-home-focus-family-link{
    inline-size:100%!important;
    width:100%!important;
    grid-template-columns:20px minmax(0,1fr)!important;
    overflow:visible!important;
  }
  .ch-home-focus-start .ch-home-focus-family-link strong{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
}

@media(max-width:360px){
  .ch-site .ch-home-focus-start>.ch-shell{margin-inline:16px!important}
  .ch-site .ch-home-focus-start .ch-edition-title{font-size:clamp(1.8rem,9vw,2.05rem)!important;line-height:1.09!important;letter-spacing:-.038em!important}
  .ch-home-focus-start .ch-home-focus-route{grid-template-columns:22px minmax(0,1fr) 16px!important;gap:10px!important;padding-inline:14px!important}
}

/* 0.40.2 — frameless navigation arrows.
 * Keep the full 44px interaction target, but remove visible oval/circle/box chrome
 * around directional arrows. Hero slider arrows already follow this rule. */
.ch-swipe-controls button,
.ch-review-carousel__arrow{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.ch-swipe-controls button:hover,
.ch-review-carousel__arrow:hover{
  border:0!important;
  background:transparent!important;
}
.ch-swipe-controls button:focus-visible,
.ch-review-carousel__arrow:focus-visible{
  outline:2px solid currentColor!important;
  outline-offset:2px!important;
}

/* 0.41.1 — bounded full-width dividers.
 * Match the desktop header rule length: Careful Hands shell, never viewport edge-to-edge.
 * Internal card/list/accordion rules are intentionally untouched. */
.ch-site :is(
  .chmf-entry,
  .chmf-bottom,
  .ch-service-edition .ch-service-depth,
  .ch-service-proof,
  .ff-index,
  .ff-source-section,
  .v3-index,
  .rt-hub-topics,
  .rt-hub-cluster + .rt-hub-cluster,
  .ch-edition-index
){
  position:relative;
}

.ch-site :is(
  .chmf-entry,
  .chmf-bottom,
  .ch-service-edition .ch-service-depth,
  .ch-service-proof,
  .ff-index,
  .ff-source-section,
  .rt-hub-cluster + .rt-hub-cluster,
  .ch-edition-index
){
  border-top:0!important;
}

.ch-site :is(
  .v3-index,
  .rt-hub-topics,
  .ff-index,
  .ch-edition-index
){
  border-bottom:0!important;
}

.ch-site :is(
  .chmf-entry,
  .chmf-bottom,
  .ch-service-edition .ch-service-depth,
  .ch-service-proof,
  .ff-index,
  .ff-source-section,
  .rt-hub-cluster + .rt-hub-cluster,
  .ch-edition-index
)::before,
.ch-site :is(
  .v3-index,
  .rt-hub-topics,
  .ff-index,
  .ch-edition-index
)::after{
  content:'';
  position:absolute;
  left:50%;
  width:calc(100% - 2 * var(--chp-gutter));
  max-width:var(--chp-max);
  height:1px;
  background:var(--chp-rule);
  transform:translateX(-50%);
  pointer-events:none;
  z-index:1;
}

.ch-site :is(
  .chmf-entry,
  .chmf-bottom,
  .ch-service-edition .ch-service-depth,
  .ch-service-proof,
  .ff-index,
  .ff-source-section,
  .rt-hub-cluster + .rt-hub-cluster,
  .ch-edition-index
)::before{top:0}

.ch-site :is(
  .v3-index,
  .rt-hub-topics,
  .ff-index,
  .ch-edition-index
)::after{bottom:0}



/* 0.43.5 — Video module divider uses the same bounded shell width as header/footer rules. */
.ch-site .chmf-videos{position:relative;border-top:0!important}
.ch-site .chmf-videos::before{content:"";position:absolute;top:0;left:50%;width:calc(100% - 2 * var(--chp-gutter));max-width:var(--chp-max);height:1px;background:var(--chp-rule);transform:translateX(-50%);pointer-events:none;z-index:1}
