/*
CMUK-inspired Elementor Components.
Inspired by CMUK Design System. Not official.
*/

:root{
  --cm-govuk-blue:#1d70b8;
  --cm-govuk-black:#0b0c0c;
  --cm-govuk-white:#ffffff;
  --cm-govuk-green:#00703c;
  --cm-govuk-red:#d4351c;
  --cm-govuk-yellow:#ffdd00;
  --cm-govuk-light-grey:#f3f2f1;
  --cm-govuk-mid-grey:#b1b4b6;
  --cm-govuk-dark-grey:#505a5f;
  --cm-govuk-font:Arial,Helvetica,sans-serif;
}

.cm-govuk-widget{
  font-family:var(--cm-govuk-font);
  color:var(--cm-govuk-black);
  font-size:19px;
  line-height:1.31579;
}

.cm-govuk-widget a{color:var(--cm-govuk-blue);text-decoration:underline;text-underline-offset:.12em}
.cm-govuk-heading-xl{font-size:48px;line-height:1.04167;font-weight:700;margin:0 0 30px}
.cm-govuk-heading-l{font-size:36px;line-height:1.11111;font-weight:700;margin:0 0 20px}
.cm-govuk-heading-m{font-size:24px;line-height:1.25;font-weight:700;margin:0 0 15px}
.cm-govuk-heading-s{font-size:19px;line-height:1.31579;font-weight:700;margin:0 0 15px}
.cm-govuk-body{font-size:19px;line-height:1.31579;margin:0 0 20px}
.cm-govuk-caption{display:block;color:var(--cm-govuk-dark-grey);font-size:27px;margin-bottom:5px}

.cm-govuk-button{display:inline-block;background:var(--cm-govuk-green);color:#fff!important;padding:8px 10px 7px;border:0;box-shadow:0 2px 0 #002d18;text-decoration:none!important;font-weight:700;font-size:19px;line-height:1.31579}
.cm-govuk-button--secondary{background:var(--cm-govuk-light-grey);color:var(--cm-govuk-black)!important;box-shadow:0 2px 0 #929191}
.cm-govuk-button--warning{background:var(--cm-govuk-red);box-shadow:0 2px 0 #55150b}

.cm-govuk-warning{display:flex;gap:12px;align-items:flex-start;font-weight:700;margin-bottom:20px}
.cm-govuk-warning__icon{border:3px solid var(--cm-govuk-black);border-radius:50%;width:35px;height:35px;display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.cm-govuk-inset{border-left:10px solid var(--cm-govuk-mid-grey);padding:15px;margin:0 0 20px}
.cm-govuk-panel{background:var(--cm-govuk-blue);color:#fff;text-align:center;padding:35px;margin-bottom:30px}
.cm-govuk-panel *{color:#fff}
.cm-govuk-notification{border:5px solid var(--cm-govuk-blue);margin-bottom:20px}
.cm-govuk-notification__title{background:var(--cm-govuk-blue);color:#fff;padding:8px 15px;font-weight:700}
.cm-govuk-notification__body{padding:15px}
.cm-govuk-details summary{cursor:pointer;color:var(--cm-govuk-blue);text-decoration:underline}
.cm-govuk-details__text{border-left:5px solid var(--cm-govuk-mid-grey);padding:15px;margin-top:10px}
.cm-govuk-tag{display:inline-block;background:var(--cm-govuk-blue);color:#fff;font-weight:700;padding:2px 8px;text-transform:uppercase;letter-spacing:1px;font-size:16px}
.cm-govuk-tag--grey{background:var(--cm-govuk-dark-grey)}
.cm-govuk-tag--green{background:var(--cm-govuk-green)}
.cm-govuk-tag--red{background:var(--cm-govuk-red)}
.cm-govuk-phase-banner{border-bottom:1px solid var(--cm-govuk-mid-grey);padding:10px 0;font-size:16px;margin-bottom:20px}

.cm-govuk-summary-list{border-top:1px solid var(--cm-govuk-mid-grey);margin:0 0 20px}
.cm-govuk-summary-list__row{display:grid;grid-template-columns:30% 1fr auto;gap:15px;padding:12px 0;border-bottom:1px solid var(--cm-govuk-mid-grey)}
.cm-govuk-summary-list__key{font-weight:700}
.cm-govuk-table{width:100%;border-collapse:collapse;margin-bottom:20px}
.cm-govuk-table th,.cm-govuk-table td{border-bottom:1px solid var(--cm-govuk-mid-grey);padding:10px;text-align:left}
.cm-govuk-breadcrumbs ol,.cm-govuk-pagination ul,.cm-govuk-tabs ul{list-style:none;margin:0;padding:0}
.cm-govuk-breadcrumbs li{display:inline;font-size:16px}
.cm-govuk-breadcrumbs li+li:before{content:"›";margin:0 8px;color:var(--cm-govuk-dark-grey)}
.cm-govuk-pagination li{display:inline-block;margin-right:20px}
.cm-govuk-tabs__list{border-bottom:1px solid var(--cm-govuk-mid-grey)}
.cm-govuk-tabs__item{display:inline-block;margin-right:5px}
.cm-govuk-tabs__link{display:block;padding:10px 15px;background:var(--cm-govuk-light-grey)}
.cm-govuk-tabs__panel{border:1px solid var(--cm-govuk-mid-grey);border-top:0;padding:20px}
.cm-govuk-accordion__item{border-top:1px solid var(--cm-govuk-mid-grey)}
.cm-govuk-accordion__button{width:100%;background:transparent;color:var(--cm-govuk-black);border:0;padding:15px 0;text-align:left;font-weight:700;cursor:pointer;font-size:19px}
.cm-govuk-accordion__content{display:none;padding:0 0 15px}
.cm-govuk-accordion__item.is-open .cm-govuk-accordion__content{display:block}

.cm-govuk-input,.cm-govuk-select,.cm-govuk-textarea{width:100%;border:2px solid var(--cm-govuk-black);padding:8px;font-family:var(--cm-govuk-font);font-size:19px;margin-bottom:15px}
.cm-govuk-label{display:block;font-weight:700;margin-bottom:5px}
.cm-govuk-hint{display:block;color:var(--cm-govuk-dark-grey);margin-bottom:10px}
.cm-govuk-error-message{color:var(--cm-govuk-red);font-weight:700;margin-bottom:10px}
.cm-govuk-error-summary{border:5px solid var(--cm-govuk-red);padding:20px;margin-bottom:30px}
.cm-govuk-card{border:1px solid var(--cm-govuk-mid-grey);padding:20px;margin-bottom:20px;background:#fff}
.cm-govuk-card--grey{background:var(--cm-govuk-light-grey)}
.cm-govuk-card--blue{background:var(--cm-govuk-blue);color:#fff}
.cm-govuk-card--blue *{color:#fff}

@media(max-width:768px){
  .cm-govuk-widget,.cm-govuk-body,.cm-govuk-button,.cm-govuk-input,.cm-govuk-select,.cm-govuk-textarea{font-size:16px;line-height:1.25}
  .cm-govuk-heading-xl{font-size:36px;line-height:1.11111}
  .cm-govuk-heading-l{font-size:27px;line-height:1.11111}
  .cm-govuk-heading-m{font-size:21px;line-height:1.19048}
  .cm-govuk-summary-list__row{display:block}
}


/* v4 demo-mode improvements */
.cm-govuk-demo-note{
  display:block;
  color:var(--cm-govuk-dark-grey);
  font-size:16px;
  margin-top:8px;
}

.cm-govuk-demo-form{
  margin:0;
}

.cm-govuk-fieldset{
  border:0;
  padding:0;
  margin:0 0 20px;
}

.cm-govuk-fieldset legend{
  padding:0;
}

.cm-govuk-checkboxes label,
.cm-govuk-radios label{
  display:block;
  position:relative;
  padding:8px 0 8px 38px;
  margin-bottom:5px;
  cursor:pointer;
}

.cm-govuk-checkboxes input,
.cm-govuk-radios input{
  position:absolute;
  left:0;
  top:9px;
  width:24px;
  height:24px;
}

.cm-govuk-date-input__item{
  display:inline-block;
  margin-right:15px;
}

.cm-govuk-date-input__item label{
  display:block;
  font-weight:700;
  margin-bottom:5px;
}

.cm-govuk-date-input__item input{
  width:80px;
}

.cm-govuk-character-count__message{
  color:var(--cm-govuk-dark-grey);
  font-size:16px;
  margin-top:-5px;
}

.cm-govuk-task-list{
  list-style:none;
  padding:0;
  margin:0 0 20px;
  border-top:1px solid var(--cm-govuk-mid-grey);
}

.cm-govuk-task-list__item{
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  padding:15px 0;
  border-bottom:1px solid var(--cm-govuk-mid-grey);
}

.cm-govuk-cookie-banner{
  background:var(--cm-govuk-light-grey);
  padding:20px;
  border-bottom:2px solid var(--cm-govuk-mid-grey);
}

.cm-govuk-service-nav{
  border-bottom:1px solid var(--cm-govuk-mid-grey);
  padding:12px 0;
  margin-bottom:20px;
}

.cm-govuk-service-nav strong{
  margin-right:20px;
}

.cm-govuk-header-demo{
  background:var(--cm-govuk-blue);
  color:#fff;
  padding:15px 20px;
  font-weight:700;
}

.cm-govuk-footer-demo{
  background:var(--cm-govuk-light-grey);
  padding:25px;
  border-top:1px solid var(--cm-govuk-mid-grey);
}

.cm-govuk-file-upload{
  border:2px solid var(--cm-govuk-black);
  padding:8px;
  width:100%;
}

.cm-govuk-exit-button{
  background:var(--cm-govuk-red);
  box-shadow:0 2px 0 #55150b;
}

.cm-govuk-start-button::after{
  content:" ›";
  font-weight:700;
}

.cm-govuk-pagination{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin:20px 0;
}

@media(max-width:768px){
  .cm-govuk-task-list__item{display:block}
  .cm-govuk-pagination{display:block}
  .cm-govuk-pagination a{display:block;margin-bottom:15px}
}


/* v5 closer CMUK component styling */
.cm-govuk-widget{
  max-width:960px;
  box-sizing:border-box;
}

.cm-govuk-widget *,
.cm-govuk-widget *::before,
.cm-govuk-widget *::after{
  box-sizing:border-box;
}

.cm-govuk-component-title{
  font-size:36px;
  line-height:1.11111;
  font-weight:700;
  margin:0 0 20px;
}

.cm-govuk-start-page{
  padding:0;
  border:0;
  background:#fff;
}

.cm-govuk-start-page .cm-govuk-heading-xl{
  margin-top:0;
}

.cm-govuk-question-page{
  max-width:640px;
}

.cm-govuk-check-answers{
  max-width:760px;
}

.cm-govuk-sign-in{
  max-width:640px;
}

.cm-govuk-confirmation{
  background:#1d70b8;
  color:#fff;
  padding:35px;
  text-align:center;
}

.cm-govuk-confirmation *{
  color:#fff;
}

.cm-govuk-error-page{
  max-width:640px;
}

.cm-govuk-search-box{
  display:flex;
  max-width:640px;
}

.cm-govuk-search-box input{
  flex:1;
  min-width:0;
  border:2px solid #0b0c0c;
  padding:8px;
  font-size:19px;
}

.cm-govuk-search-box button{
  background:#1d70b8;
  color:#fff;
  border:0;
  padding:8px 14px;
  font-weight:700;
  box-shadow:none;
}

.cm-govuk-address-fields,
.cm-govuk-payment-fields{
  max-width:640px;
}

.cm-govuk-section-break{
  border:0;
  border-top:1px solid #b1b4b6;
  margin:30px 0;
}

.cm-govuk-colour-swatch{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}

.cm-govuk-colour-swatch div{
  min-height:70px;
  padding:10px;
  color:#fff;
  font-weight:700;
}

.cm-govuk-colour-blue{background:#1d70b8}
.cm-govuk-colour-black{background:#0b0c0c}
.cm-govuk-colour-green{background:#00703c}
.cm-govuk-colour-red{background:#d4351c}

.cm-govuk-style-demo{
  border-left:10px solid #1d70b8;
  padding:15px 20px;
  background:#f3f2f1;
}

.cm-govuk-page-template-demo{
  border-top:10px solid #1d70b8;
  padding-top:20px;
}

.cm-govuk-link-list{
  list-style:none;
  padding:0;
  margin:0 0 20px;
}

.cm-govuk-link-list li{
  margin-bottom:8px;
}

@media(max-width:768px){
  .cm-govuk-component-title{font-size:27px;line-height:1.11111}
  .cm-govuk-colour-swatch{grid-template-columns:1fr 1fr}
}

/* v6 - split categories + proper pattern/style page layouts */
.cm-govuk-start-page{max-width:640px;padding:0!important;border:0!important;background:#fff!important}
.cm-govuk-start-page__list{margin:0 0 25px 25px;padding:0}
.cm-govuk-start-page__list li{margin-bottom:5px}
.cm-govuk-layout-demo{border-top:10px solid var(--cm-govuk-blue);padding:25px 0 0;background:#fff}
.cm-govuk-layout-demo__grid{display:grid;grid-template-columns:2fr 1fr;gap:30px}
.cm-govuk-layout-demo__aside{border-top:2px solid var(--cm-govuk-blue);padding-top:15px}
.cm-govuk-style-plain{background:#fff!important;border:0!important;padding:0!important}
.cm-govuk-pattern-page{max-width:640px;background:#fff;border:0;padding:0}
@media(max-width:768px){.cm-govuk-layout-demo__grid{display:block}.cm-govuk-layout-demo__aside{margin-top:25px}}


/* v7 - Service name box component */
.cm-govuk-service-name-box{
  background:#f3f8fc;
  border-bottom:3px solid #b1d2e8;
  padding:32px 30px 26px;
}

.cm-govuk-service-name-box__title{
  font-size:48px;
  line-height:1.04167;
  font-weight:700;
  margin:0 0 24px;
  color:#0b0c0c;
}

.cm-govuk-service-name-box__menu-button{
  appearance:none;
  background:transparent!important;
  border:0;
  padding:0;
  color:#1d70b8!important;
  font-size:36px;
  line-height:1.11111;
  font-weight:700;
  cursor:pointer;
  box-shadow:none!important;
  text-decoration:none!important;
}

.cm-govuk-service-name-box__menu-button:after{
  content:"";
  display:inline-block;
  margin-left:10px;
  width:0;
  height:0;
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-top:14px solid currentColor;
}

.cm-govuk-service-name-box__menu{
  display:none;
  list-style:none!important;
  padding:0!important;
  margin:20px 0 0!important;
}

.cm-govuk-service-name-box__menu.is-open{
  display:block;
}

.cm-govuk-service-name-box__menu li{
  list-style:none!important;
  border-top:1px solid #b1d2e8;
}

.cm-govuk-service-name-box__menu a{
  display:block;
  padding:14px 0;
  color:#1d70b8!important;
  text-decoration:none!important;
  font-weight:700;
  font-size:24px;
}

@media(max-width:768px){
  .cm-govuk-service-name-box{
    padding:28px 15px 24px;
  }

  .cm-govuk-service-name-box__title{
    font-size:36px;
    line-height:1.11111;
  }

  .cm-govuk-service-name-box__menu-button{
    font-size:32px;
  }
}


/* v9 - 16px text baseline across all CMUK Elementor widgets */
.cm-govuk-widget,
.cm-govuk-widget p,
.cm-govuk-widget a,
.cm-govuk-widget li,
.cm-govuk-widget label,
.cm-govuk-widget input,
.cm-govuk-widget textarea,
.cm-govuk-widget select,
.cm-govuk-widget button,
.cm-govuk-widget dd,
.cm-govuk-widget dt,
.cm-govuk-widget td,
.cm-govuk-widget th,
.cm-govuk-body,
.cm-govuk-button,
.cm-govuk-input,
.cm-govuk-select,
.cm-govuk-textarea{
  font-size:16px !important;
  line-height:1.5 !important;
}

.cm-govuk-heading-xl{font-size:36px!important;line-height:1.11111!important}
.cm-govuk-heading-l{font-size:27px!important;line-height:1.11111!important}
.cm-govuk-heading-m{font-size:21px!important;line-height:1.19048!important}
.cm-govuk-heading-s{font-size:16px!important;line-height:1.5!important}
.cm-govuk-caption{font-size:16px!important;line-height:1.5!important}

/* v9 Dynamic CMUK header widget */
.cm-govuk-header-widget{
  background:var(--cm-govuk-blue);
  color:#fff;
  padding:0;
}

.cm-govuk-header-widget--black{
  background:var(--cm-govuk-black);
}

.cm-govuk-header-widget__inner{
  max-width:960px;
  margin:0 auto;
  padding:14px 30px;
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  position:relative;
}

.cm-govuk-header-widget__title,
.cm-govuk-header-widget__title:hover,
.cm-govuk-header-widget__title:focus{
  color:#fff!important;
  text-decoration:none!important;
  background:transparent!important;
  box-shadow:none!important;
  font-weight:700;
  font-size:26px!important;
  line-height:1.1!important;
}

.cm-govuk-header-widget__actions{
  display:none;
  margin-left:auto;
}

.cm-govuk-header-widget__menu-button{
  appearance:none;
  background:transparent!important;
  color:#fff!important;
  border:0;
  border-left:1px solid rgba(255,255,255,.25);
  min-height:44px;
  padding:0 12px;
  font-weight:700;
  box-shadow:none!important;
  text-decoration:none!important;
}

.cm-govuk-header-widget__menu-button:before{
  content:"";
  display:inline-block;
  width:0;
  height:0;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:5px solid currentColor;
  margin-right:5px;
  vertical-align:middle;
}

.cm-govuk-header-widget__menu-button[aria-expanded="true"]:before{
  border-top:0;
  border-bottom:5px solid currentColor;
}

.cm-govuk-header-widget__nav ul{
  list-style:none!important;
  margin:0!important;
  padding:0!important;
  display:flex;
  gap:18px;
}

.cm-govuk-header-widget__nav li{
  list-style:none!important;
  margin:0!important;
  padding:0!important;
}

.cm-govuk-header-widget__nav a,
.cm-govuk-header-widget__nav a:hover,
.cm-govuk-header-widget__nav a:focus{
  color:#fff!important;
  text-decoration:none!important;
  background:transparent!important;
  box-shadow:none!important;
  font-weight:700;
}

/* v9 Dynamic service navigation widget */
.cm-govuk-service-nav-widget{
  background:#f3f8fc;
  border-bottom:3px solid #b1d2e8;
  color:#0b0c0c;
}

.cm-govuk-service-nav-widget__inner{
  max-width:960px;
  margin:0 auto;
  padding:28px 30px 24px;
}

.cm-govuk-service-nav-widget__title{
  color:#0b0c0c!important;
  text-decoration:none!important;
  background:transparent!important;
  box-shadow:none!important;
  display:block;
  font-weight:700;
  font-size:36px!important;
  line-height:1.11111!important;
  margin:0 0 22px;
}

.cm-govuk-service-nav-widget__toggle{
  appearance:none;
  background:transparent!important;
  border:0;
  padding:0;
  color:#1d70b8!important;
  font-size:27px!important;
  line-height:1.11111!important;
  font-weight:700;
  cursor:pointer;
  box-shadow:none!important;
}

.cm-govuk-service-nav-widget__toggle:after{
  content:"";
  display:inline-block;
  margin-left:10px;
  width:0;
  height:0;
  border-left:9px solid transparent;
  border-right:9px solid transparent;
  border-top:12px solid currentColor;
}

.cm-govuk-service-nav-widget__toggle[aria-expanded="true"]:after{
  border-top:0;
  border-bottom:12px solid currentColor;
}

.cm-govuk-service-nav-widget__list{
  display:none;
  list-style:none!important;
  margin:18px 0 0!important;
  padding:0!important;
}

.cm-govuk-service-nav-widget__list.is-open{
  display:block;
}

.cm-govuk-service-nav-widget__list li{
  list-style:none!important;
  margin:0!important;
  padding:0!important;
  border-top:1px solid #b1d2e8;
}

.cm-govuk-service-nav-widget__list a,
.cm-govuk-service-nav-widget__list a:hover,
.cm-govuk-service-nav-widget__list a:focus{
  display:block;
  padding:12px 0;
  color:#1d70b8!important;
  text-decoration:none!important;
  background:transparent!important;
  box-shadow:none!important;
  font-weight:700;
}

@media(min-width:769px){
  .cm-govuk-service-nav-widget__inner{
    display:flex;
    align-items:center;
    gap:30px;
  }

  .cm-govuk-service-nav-widget__title{
    margin:0;
    font-size:27px!important;
    white-space:nowrap;
  }

  .cm-govuk-service-nav-widget__toggle{
    display:none;
  }

  .cm-govuk-service-nav-widget__list{
    display:flex;
    gap:5px;
    margin:0!important;
  }

  .cm-govuk-service-nav-widget__list li{
    border-top:0;
  }

  .cm-govuk-service-nav-widget__list a{
    padding:10px 15px;
  }
}

@media(max-width:768px){
  .cm-govuk-header-widget__inner{
    padding:0 0 0 15px;
    min-height:54px;
  }

  .cm-govuk-header-widget__title{
    font-size:24px!important;
  }

  .cm-govuk-header-widget__actions{
    display:flex;
  }

  .cm-govuk-header-widget__nav{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    z-index:9999;
    background:var(--cm-govuk-blue);
    padding:0 15px 10px;
    box-shadow:0 4px 0 rgba(0,0,0,.25);
  }

  .cm-govuk-header-widget--black .cm-govuk-header-widget__nav{
    background:var(--cm-govuk-black);
  }

  .cm-govuk-header-widget__nav.is-open{
    display:block;
  }

  .cm-govuk-header-widget__nav ul{
    display:block;
    width:100%;
  }

  .cm-govuk-header-widget__nav a{
    display:block;
    padding:12px 0;
    border-top:1px solid rgba(255,255,255,.25);
  }

  .cm-govuk-service-nav-widget__inner{
    padding:24px 15px 22px;
  }

  .cm-govuk-service-nav-widget__title{
    font-size:32px!important;
    line-height:1.11111!important;
  }
}


/* v10 - WordPress menu editor support, same CMUK list/dropdown styling */
.cm-govuk-header-widget__nav ul,
.cm-govuk-service-nav-widget__list,
.cm-govuk-service-name-box__menu{
  list-style:none !important;
}

.cm-govuk-header-widget__nav li::marker,
.cm-govuk-service-nav-widget__list li::marker,
.cm-govuk-service-name-box__menu li::marker{
  content:"";
}

.cm-govuk-header-widget__nav li,
.cm-govuk-service-nav-widget__list li,
.cm-govuk-service-name-box__menu li{
  list-style:none !important;
}


/* v11 - widget menu disable support */
.cm-govuk-menu-disabled .cm-govuk-header-widget__actions,
.cm-govuk-menu-disabled .cm-govuk-header-widget__nav,
.cm-govuk-menu-disabled .cm-govuk-service-nav-widget__toggle,
.cm-govuk-menu-disabled .cm-govuk-service-nav-widget__list,
.cm-govuk-menu-disabled .cm-govuk-service-name-box__menu-button,
.cm-govuk-menu-disabled .cm-govuk-service-name-box__menu{
  display:none !important;
}


/* v12 - remove yellow focus background from form fields */
.cm-govuk-widget input:focus,
.cm-govuk-widget textarea:focus,
.cm-govuk-widget select:focus,
.cm-govuk-input:focus,
.cm-govuk-textarea:focus,
.cm-govuk-select:focus{
  background:#ffffff !important;
  background-color:#ffffff !important;
  color:#0b0c0c !important;
  outline:3px solid #ffdd00 !important;
  outline-offset:0 !important;
  box-shadow:inset 0 0 0 2px #0b0c0c !important;
}


/* v13 - upload file spacing */
.cm-govuk-file-upload,
.cm-govuk-file-upload-wrapper{
  display:block;
}

.cm-govuk-file-upload + .cm-govuk-button,
.cm-govuk-file-upload-wrapper + .cm-govuk-button,
.cm-govuk-widget input[type="file"] + .cm-govuk-button{
  margin-top:16px !important;
}

.cm-govuk-file-upload-actions{
  margin-top:16px !important;
}


/* v14 - text size controls support */
.cm-govuk-widget{
  --cm-govuk-title-size: inherit;
  --cm-govuk-body-size: inherit;
}

/* These are mostly controlled by Elementor selectors, this keeps custom component labels consistent */
.cm-govuk-widget .cm-govuk-label,
.cm-govuk-widget .cm-govuk-hint,
.cm-govuk-widget .cm-govuk-error-message{
  font-size:inherit;
}


/* v15 - force public/live frontend text sizing */
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget p,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget a,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget li,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget label,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget input,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget textarea,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget select,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget button,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget dd,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget dt,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget td,
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-widget th{
  font-size:16px !important;
  line-height:1.5 !important;
}

/* Keep title hierarchy visible on frontend unless Elementor widget CSS overrides it */
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-heading-xl{font-size:36px!important;line-height:1.11111!important}
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-heading-l{font-size:27px!important;line-height:1.11111!important}
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-heading-m{font-size:21px!important;line-height:1.19048!important}
body:not(.elementor-editor-active) .elementor-widget .cm-govuk-heading-s{font-size:16px!important;line-height:1.5!important}

/* Let Elementor generated per-widget responsive controls win when selected */
body .elementor .elementor-element .cm-govuk-widget[style],
body .elementor .elementor-element .cm-govuk-widget[style] *{
  font-size:inherit;
}

/* Hard target common public preview/live wrappers */
.elementor-location-single .cm-govuk-widget,
.elementor-location-archive .cm-govuk-widget,
.elementor-location-header .cm-govuk-widget,
.elementor-location-footer .cm-govuk-widget,
.elementor-page .cm-govuk-widget{
  font-size:16px !important;
  line-height:1.5 !important;
}


/* v17 - Elementor typography force support */
.elementor-widget .cm-govuk-widget,
.elementor-widget .cm-govuk-widget *{
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Allow Elementor typography controls to override defaults */
.elementor-widget .cm-govuk-widget[style],
.elementor-widget .cm-govuk-widget .elementor-inline-editing,
.elementor-widget .cm-govuk-widget .elementor-size-default{
  font-size: inherit !important;
}

/* Frontend typography rendering */
body .elementor .cm-govuk-widget h1,
body .elementor .cm-govuk-widget h2,
body .elementor .cm-govuk-widget h3,
body .elementor .cm-govuk-widget p,
body .elementor .cm-govuk-widget a,
body .elementor .cm-govuk-widget li,
body .elementor .cm-govuk-widget label,
body .elementor .cm-govuk-widget button{
  font-family: inherit;
}


/* v1.0.0 link colour sync patch - remove yellow hover/focus backgrounds */
.cm-govuk-widget a,
.cm-govuk-widget a:hover,
.cm-govuk-widget a:focus,
.cm-govuk-widget a:active,
.cm-govuk-widget button:hover,
.cm-govuk-widget button:focus,
.cm-govuk-service-nav-widget__toggle:hover,
.cm-govuk-service-nav-widget__toggle:focus,
.cm-govuk-header-widget__menu-button:hover,
.cm-govuk-header-widget__menu-button:focus{
  background:transparent!important;
  background-color:transparent!important;
  box-shadow:none!important;
}
.cm-govuk-widget a:focus,
.cm-govuk-widget button:focus{
  outline:2px solid currentColor!important;
  outline-offset:2px!important;
}
