/* banner-tools.css */
/* Banner Tools */
.bnr-tls {
	--bnr-tls-pd-v-tp: 165; /* { readonly: true } */
	--bnr-tls-pd-v-tp-mbl: 75; /* { readonly: true } */
	--bnr-tls-pd-v-bt: 165; /* { readonly: true } */
	--bnr-tls-pd-v-bt-mbl: 75; /* { readonly: true } */

	--bnr-tls-pd-v-tp-clc: calc((var(--bnr-tls-pd-v-tp-mbl) * 1px) + (var(--bnr-tls-pd-v-tp) - var(--bnr-tls-pd-v-tp-mbl)) * ((var(--vw_) - 320px) / (1920 - 320))); /* { readonly: true } */
	--bnr-tls-pd-v-bt-clc: calc((var(--bnr-tls-pd-v-bt-mbl) * 1px) + (var(--bnr-tls-pd-v-bt) - var(--bnr-tls-pd-v-bt-mbl)) * ((var(--vw_) - 320px) / (1920 - 320))); /* { readonly: true } */

	padding-top: var(--bnr-tls-pd-v-tp-clc);
	padding-bottom: var(--bnr-tls-pd-v-bt-clc);

	.cms-content & {
		[field="Title"] [data-sysheader] {
			display: none;
		}

		[field="Title"] if[p-hide='true'] {
			display: block;
		}
	}
}

.overlap {
	.bnr-tls [class*="mn_"] {
		padding-top: var(--bnr-tls-pd-v-tp-clc);
	}
}
/* tabbable.css */

.el-tab {
	cursor: pointer;
	
	&.tb-arw,
	.tb-arw {
		transition: transform var(--g-trn-sp) var(--g-trn-tf) 0s, color var(--g-trn-sp) var(--g-trn-tf) 0s;
		transform-origin: 50% 50%;
	}
	
	&.active .tb-arw,
	&.active.tb-arw {
		transform: rotate(180deg);
	}
}

.el-sec-tab {
	cursor: pointer;
}

.el-panel.sld {
    transition: height .5s ease 0s, margin .5s ease 0s, padding .5s ease 0s;
}

html:not(.cms-content) .el-panel:not(.active) {
	display: none;
	visibility: hidden;
}

/* values-tools.css */
/* Values Tools */
main {
	--vls-tls-icn-s: 2.5rem; /* { min: 1, max: 5, step: 0.1, friendly: 'Values Icon Size' } */
}

.vls .vls-icn {
	font-size: var(--vls-tls-icn-s);
}

/* reviews-tools.css */
/* Reviews panel tools */

/* scrolling-list-overflow.css */
:root {
	--scrl-nv-mrg-tp: 2.2rem;
    --g-pd-v: 3.5rem;
    --g-pd-h: 2rem;
}

/* Overflow Scrolling Lists */
.s-active {
	
	.off-scr {
		margin-inline: calc( var(--g-pd-h) * -1 );
		
		&:before, &:after {
		    content: '';
		    display: block;
		    width: var(--g-pd-h);
		    flex-shrink: 0;
			scroll-snap-align: center;
		}
			
		&[class*='gp_sp'] {
			
			&:before, &:after {
				width: calc( var(--g-pd-h) - var(--grd-sp-dyn) );
			}
			
		}
		
		[data-role='item'] {
			scroll-snap-align: center;
		}
		
	}
	
	@media screen and (width >= 1280px) {
		
		.off-scr {
			margin-inline: calc( (100svw - var(--mn-w)) * -0.5 );
			
			&:before, &:after {
			    width: calc( (100svw - var(--mn-w)) * 0.5 );
			}
			
			&[class*='gp_sp'] {
				
				&:before, &:after {
					width: calc( (100svw - var(--mn-w)) * 0.5 - var(--grd-sp-dyn) );
				}
				
			}
			
		}
		
	}
		
}

/* Scroll Nav */
[data-role="arrows"]:has( [data-role="thumbList"] ) {
	--sl-sa-s: 0.8rem;
	--scrl-nv-rds: 0.5rem;
	--scrl-nv-pd-v: 0.67rem;
	--scrl-nv-pd-h: 0.89rem;
	--scrl-nv-gp: 1.2rem;
	
	color: var(--text-color);
	font-size: var(--sl-sa-s);
	margin-block-start: var(--scrl-nv-mrg-tp);
	
	&:has( [data-role="thumbList"] ) {
		--scrl-nv-rds: 5rem;
		--scrl-nv-pd-v: 0.67rem;
		--scrl-nv-pd-h: 0.89rem;
	}

	> div {
		gap: var(--scrl-nv-gp);
		padding: var(--scrl-nv-pd-v) var(--scrl-nv-pd-h);
		border-radius: var(--scrl-nv-rds);
		
	}
	
}

:is(.wht-bg, .lt-bg) [data-role="arrows"] > div {
	background-color: var(--background);
}

.dk-bg [data-role="arrows"] > div {
	background-color: hsl(from var(--black) h s l / 0.5);
}

/* Play / Pause Button */
[data-action='PlayPause'] {
	color: var(--white);
	background-color: var(--buttons);
	border-radius: 50%;
	width: 1.11rem;
	height: 1.11rem;
	position: relative;
	display: none;
	visibility: hidden;
	transition: background-color var(--g-trn-sp) var(--g-trn-tf);
	
	svg {
		font-size: 0.5rem;
		position: absolute;
		top: 50%;
		left: 50%;
		translate: -50% -50%;
		display: none;
		
		&.pse-icn {
			display: block;
		}
		
	}
	
	&:is( :hover, :focus-visible ) {
		color: var(--white);
		background-color: #00407F;
	}
	
}

.s-paused [data-action='PlayPause'] {
	
	.ply-icn {
		display: block;
	}
	
	.pse-icn, .rst-icn {
		display: none;
	}
	
}

.s-restart [data-action='PlayPause'] {
	
	.rst-icn {
		display: block;
	}
	
	.ply-icn, .pse-icn {
		display: none;
	}
	
}

[data-auto-advance="true"] [data-action='PlayPause'] {
	display: flex;
	visibility: visible;
}

/* Thumbs Nav */
[data-role="thumbList"] {
	--ato-adv-thb-dur: 19.5s;
	
	button {
		--thmb-o: 0.25;
		
		display: block;
		color: inherit;
		width: 0.5rem;
		height: 0.5rem;
		position: relative;
		overflow: hidden;
		background-color: hsl(from var(--text-color) h s l / var(--thmb-o));
		border-radius: 0.5rem;
		transition: background-color var(--g-trn-sp) var(--g-trn-tf);
		
		&.s-active {
			pointer-events: none;
		}
		
	}
	
}

:is(.wht-bg, .lt-bg) [data-role="thumbList"] button {
			
	&:is( .s-active, :hover, :focus-visible ) {
		--thmb-o: 1;
	}
		
	&.s-active {
		background-color: var(--buttons);
	}
	
}

:is(.blk-bg, .dk-bg) [data-role="thumbList"] button {
		
	&:is( :hover, :focus-visible ) {
		--thmb-o: 0.6;
	}
		
	&.s-active {
		--thmb-o: 1;
	}
	
}

/* Auto Advance Thumbs Nav */
[data-auto-advance="true"] {

	[data-role="thumbList"] {
		
		button {
			transition: width 0.2s ease, background-color var(--g-trn-sp) var(--g-trn-tf);
			
			&:after {
				content: '';
				position: absolute;
				top: 0;
				left: 0;
				width: 0;
				height: 100%;
				border-radius: inherit;
				background-color: var(--buttons);
			}
		
			&.s-active {
				--thmb-o: 0.25;
		
				width: 3.2rem;
				background-color: hsl(from var(--text-color) h s l / var(--thmb-o));
				
				&:after {
					animation: timerThumb var(--ato-adv-thb-dur) linear forwards;
				}
				
			}
			
		}
		
	}
	
	&.s-paused, .s-paused {
		
		[data-role="thumbList"] button.s-active:after {
			animation-play-state: paused;
		}
		
	}

}

/* Auto Advance Thumbs Nav Keyframe */
@keyframes timerThumb {
	to {
		width: 100%;
	}
}
/* forms.css */

/* Form Styles */
fieldset {		
	min-inline-size: auto;
	border: none;
	padding: 0;
	margin: 0;
	
	legend {
		padding: 0;
	}
	
	ul {
	    flex-wrap: wrap;
	}
}

label {
	display: block;
	text-align: left;
	transition: color var(--g-trn-sp) var(--g-trn-tf) 0s;
}

small {
	font-size: .778rem;
}


/* Form Input Styles */
input, textarea, select {
	border: 0;
	width: 100%;
	outline: none;
	color: inherit;
	font-size: inherit;
	font-weight: normal;
	font-family: inherit;
	line-height: inherit;
	text-transform: none;
	background-color: transparent;
	line-height: var(--fnt-frm-lh);
}

select,
input[type='search'] {
	appearance: none;
}

textarea {
	resize: none;
	overflow: auto;
	min-height: 4.5rem;
}

:invalid {
	box-shadow: none;
}

.inp-mrk,
.input-text {
	position: relative;
}

.input-text #Consent + small {
    text-wrap: balance;
}

[class*="ta_"] {
	.input-text #Consent + small {
		text-align: center;
	}

	@media screen and (min-width:1280px) {
		&[class*="l-1280"] {
			.input-text #Consent + small {
				text-align: left;
			}
		}

		&[class*="r-1280"] {
			.input-text #Consent + small {
				text-align: right;
			}
		}
	}
	
}

.input-text  {
	text-align: left;
	font-size: 1rem;
	background-clip: padding-box !important;
	
	:is(input, select, textarea) {
		border-width: var(--frm-bdr-w);
		border-style: var(--frm-bdr-stl);
		border-radius: var(--frm-bdr-rds);
		transition: border-color var(--g-trn-sp) var(--g-trn-tf) 0s;
		padding: 1em;
	}
	
	&:has( > svg ) :is(input, select, textarea) {
		padding-right: 3em;
	}
	
	select {
		 :is(option, optgroup) {
			background-color: var(--background);
			color: var(--text-color);

			&:disabled {
				color: hsl(from var(--text-color) h s l / 0.5);
			}
		}

		/* Placeholder options are selected+disabled, so the native popup paints
		   its gray selection highlight on them when it first opens. display:none
		   does carry into the popup, so hide them from the list — the closed
		   control still shows the placeholder text. */
		option[value=""]:disabled {
			display: none;
		}
	}
	
	label {
		
		&.abs {
			top: 1em;
			left: 1em;
			pointer-events: none;
			transform: scale(1);
			transform-origin: 0 50%;
			transition: transform var(--g-trn-sp) var(--g-trn-tf) 0s, top var(--g-trn-sp) var(--g-trn-tf) 0s;
		}
		
	}
	
	> svg {
		bottom: calc(50% - .5em);
		right: 1em;
		position: absolute;
		pointer-events: none;
		color: var(--link-color);
	}
}

:is(.focused, .filled) {
	
	.input-text {
		
		label {
		
			&.abs {
				top: 0;
				transform: scale(0.7);
			}
			
		}
		
	}
	
}

/* Form Checkbox Styles */

.inp-mrk {
	
	.input-text {
		border: 0;
		padding: 0;
	}
	
	input {
		position: absolute;
		opacity: 0;
		top: 0;
		left: 0;
		margin: 0;
		padding: 0;
		cursor: pointer;
		-webkit-appearance: none;
		z-index: 3;
		
		&:checked + label.replace:before {
			opacity: 1;
			transform: none;
		}
		
		&[type=radio] + label.replace {
			border-radius: 50%;
		}
		
	}
	
	label {
		user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		
		&.toggle,
		&.replace {
			flex: 0 0 auto;
			cursor: pointer;
			
			+ label {
				margin: 0;
				line-height: 1.55;
				position: relative;
				padding-left: .625em;	
			}
		}
		
		&.replace {
			margin: 0;
			width: 1.5em;
			height: 1.5em;
			border-width: 1px;
			position: relative;
			border-style: solid;
			transition: border-color var(--g-trn-sp) var(--g-trn-tf) 0s;
			
			&::before {
				content: '';
				top: 4px;
				left: 4px;
				right: 4px;
				bottom: 4px;
				opacity: 0;
				position: absolute;
				transform: scale(.7);
				border-radius: inherit;
				transition: background-color var(--g-trn-sp) var(--g-trn-tf) 0s, transform var(--g-trn-sp) var(--g-trn-tf) 0s, opacity var(--g-trn-sp) var(--g-trn-tf) 0s;
			}
		}
	}
}

/* Ui-Condidional */
html:not(.cms-content) .ui-conditional-panel:not(.active) {
	display: none;
	visibility: hidden;
}


/* Form Colors */
@scope (form) to (.inp-mrk) {
	
	.input-text {
		/* --text-color: var(--text);
		--background: var(--white); */

		:is(input, select, textarea) {
			color: var(--text-color);
			border-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
			background: var(--background);
		}
		
		label.abs {
			color: var(--text-color);
		}
		
	}

	.focused .input-text :is(input, select, textarea) {
		border-color: var(--highlight-color) !important;
	}
	
	.invalid .input-text :is(input, select, textarea) {
		border-color: var(--invalid-color) !important;
	}
	
	.valid .input-text :is(input, select, textarea) {
		border-color: var(--valid-color);
	}
	
}

.inp-mrk label.replace {
	border-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk input:checked + label.replace {
	border-color: var(--link-color);
}

.inp-mrk label.replace.disabled,
.inp-mrk input:disabled + label.replace {
	background-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk label.replace.disabled::before,
.inp-mrk input:disabled + label.replace::before {
	background-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk label.replace::before {
	background-color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

.inp-mrk input:checked + label.replace::before {
	background-color: var(--link-color);
}

.inp-mrk label.replace + label,
.inp-mrk label.toggle + label {
	color: var(--text-color);
}

.inp-mrk label.replace.disabled + label,
.inp-mrk input:disabled + label.replace + label {
	color: hsl(from var(--text-color) h s l / var(--bdr-clr-o));
}

/* awards-tools.css */

.aws {
	--aws-ttl-dsp: block; /* {friendly: 'Awards Title Display'} */
	--aws-cnt-dsp: block; /* {friendly: 'Awards Description Display'} */
	
	li {
		.fnt_t-itm {
			display: var(--aws-ttl-dsp);
		}
		
		.cnt-stl {
			display: var(--aws-cnt-dsp);
		}
		
		img {
			max-width: var(--awd-mx-wd-clc);
			max-height: var(--awd-mx-ht-clc);
		}
	}
}

.cms-content .aws {
	li {
		.fnt_t-itm, .cnt-stl {
			display: none;
		}
	}
}

/* Avvo client-reviews badge (rendered by AwardItem for awardId 1427).
   Moved out of the SVG's inline <style> — embedded styles are stripped on publish.
   The badge script toggles .st5 (filled star) / .st14 (hidden) on these elements. */
@font-face {
	font-family: "Circular-Bold";
	src: url("https://assets.avvo.com/avvo-ui/0.20.5/fonts/avvo_ui/circular/circular_bold.woff") format("woff");
}
.avvo-badge .st0 { fill: #153860 !important; }
.avvo-badge .st1 { fill: #010101 !important; }
.avvo-badge .st2 { fill: #15467a !important; }
.avvo-badge .st3 { fill: #fff !important; }
.avvo-badge .st4 { fill: none !important; }
.avvo-badge .st5 { fill: #f89838 !important; }
.avvo-badge .st6 { fill: #ed514c !important; }
.avvo-badge .st7 { font-family: "Circular-Bold", Avenir Next, Avenir, Century Gothic, sans-serif !important; font-weight: bold !important; }
.avvo-badge .st8 { font-size: 20px !important; }
.avvo-badge .st9 { letter-spacing: -1px !important; }
.avvo-badge .st10 { font-family: "Circular-Bold", Avenir Next, Avenir, Century Gothic, sans-serif !important; font-size: 14px; }
.avvo-badge .st11 { font-size: 65px !important; }
.avvo-badge .st12 { text-anchor: middle !important; }
.avvo-badge .st13 { fill: #969696 !important; }
.avvo-badge .st14 { display: none !important; }

/* banner-v2.css */
.bnr.v2 {
  --bnr-tls-pd-v-tp: 165; 
  --bnr-tls-pd-v-tp-mbl: 75; 
  --bnr-tls-pd-v-bt: 197; 
  --bnr-tls-pd-v-bt-mbl: 75; 
  --bnr-img-bg-o: 1;
  --fnt-t-k-ls: 0.61rem;

  img {
    object-fit: cover !important;
  }
}

/* content-v6.css */
.lt-bg + .lt-bg.cnt.v6,
.dk-bg + .dk-bg.cnt.v6 {
    .hex-dcr {
      
        &.tp {
            top: -4.444rem;
            left: calc(-1 * (var(--cnt-v6-hx-s-clc) * .45));
        }
    }
}

.cnt.v6 {
    --cnt-v6-arw-s: 0.5rem;
    --cnt-v6-hx-s: 268;
    --cnt-v6-hx-s-mbl:  16;
    --cnt-v6-hx-s-clc: calc((var(--cnt-v6-hx-s-mbl) * 1px) + (var(--cnt-v6-hx-s) - var(--cnt-v6-hx-s-mbl)) * ((var(--vw_) - 320px) / (1920 - 320)));

    .hex-dcr {
        position: absolute;
        width: var(--cnt-v6-hx-s-clc);
        height: var(--cnt-v6-hx-s-clc);
        z-index: 0;
        pointer-events: none;
        color: var(--fnt-t-1);

        svg {
            font-size: var(--cnt-v6-hx-s-clc);
        }

        &.tp {
            top: var(--pd-v);
            left: calc(-1 * (var(--cnt-v6-hx-s-clc) * .45));
        }

        &.bt {
            bottom: calc(-0.5 * (var(--cnt-v6-hx-s-clc) * .45));
            right: calc(-1 * (var(--cnt-v6-hx-s-clc) * .45));
        }
    }

    /* Breadcrumb */
    .brdcrmb ol {
        gap: 0.5rem;
        flex-wrap: wrap;
    }

    .brdcrmb li {
        gap: 0.5rem;
        font-weight: bold;
    }

    .brdcrmb li svg {
        width: 0.5rem;
        height: 0.5rem;
        rotate: -90deg;
        fill: currentColor;
        flex-shrink: 0;
    }

    .brdcrmb-cur {
        opacity: 0.6;
    }

    /* Feature list */
    .v6-feat {
        list-style: none;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .v6-feat li p {
        margin: 0;
    }

    .feat-icn {
        display: block;
        flex-shrink: 0;
        width: 1rem;
        height: 1rem;
        border-radius: 50%;
        border: 2px solid var(--bdr-clr);
        background-color: hsl(from var(--buttons) h s l / 0.15);
    }

    .lvl-2-arw {
        font-size: var(--cnt-v6-arw-s);
        flex-shrink: 0;
        color: var(--buttons);
    }
}

/* values-v7.css */
/* ValuesS7 — Values + CTA horizontal split */

.vls.v7 {
    /* -- Content column ------------------------------ */
    .vls-v7-content {
        gap: 2rem;
    }

    .vls-v7-sub {
        opacity: 0.6;
    }

    /* -- Value items (2-col wrap on desktop) ---------- */
    .vls-lst {
      
        li {
            gap: 0.5rem;
        }

      
    }
    
    /* -- CTA column ---------------------------------- */
    .vls-v7-ctas {
        gap: 1rem;

        @media screen and (min-width: 1280px) {
            width: 17.5rem;
        }

        .btn {
            width: 100%;
            justify-content: center;
        }
    }
}

/* reviews-v1.css */
.rvw.v1 {

    --rvw-str-clr: var(--fnt-t-co);
    --rvw-str-s: 1.33rem;
    --rvw-v1-bx-w: 38rem;


    button[data-action="PlayPause"] {
        svg {
            color: var(--text-alt);
        }
    }

    .svg-con {
        line-height: 1;
    }
    /* Override off-scr to bleed relative to .bx, not mn_wd */

    @media screen and (min-width: 1280px) {
        .bx {
            max-width: var(--rvw-v1-bx-w);
            margin-inline: auto;
            position: relative;
            width: 100%;
        }

        .off-scr {
            margin-inline: calc((100svw - var(--rvw-v1-bx-w)) * -0.5);

            &:before, &:after {
                width: calc((100svw - var(--rvw-v1-bx-w)) * 0.5);
            }

            &[class*='gp_sp'] {
                --grd-sp-dyn: 6.83rem;

                &:before, &:after {
                    width: calc((100svw - var(--rvw-v1-bx-w)) * 0.5 - var(--grd-sp-dyn));
                }
            }

            li[data-role="item"] {
                width: var(--rvw-v1-bx-w);
                max-width: var(--rvw-v1-bx-w);
                flex-shrink: 0;
            }
        }

        [data-role="arrows"] {
            margin-top: 0;
            position: absolute;
            top: 50%;
            translate: -50% -50%;
            left: 50%;
            width: calc((var(--rvw-v1-bx-w) + var(--grd-sp-dyn)) + (var(--sl-sa-s) * 2));
            justify-content: space-between;
        }
    }

    @media screen and (max-width: 1279px) {
        .off-scr {
            margin-inline: 0 !important;

            &::before, &::after {
                display: none;
            }
        }
    }

    /* Google icon sizing */
    .g-icn {
        flex-shrink: 0;
        font-size: 1.33rem;
    }

    li[data-role="item"] {
        opacity: 0.4;
        transition: opacity 0.4s ease;

        &.s-active {
            opacity: 1;
        }
    }
}

/* contact-v2.css */
.ctc.v2 {
  --flr-bx-w: 293;
  --flr-bx-w-mbl: 293;
  --flr-mrg-tp: 1.5rem;
  --flr-mrg-bt: 1.5rem;
  --flr-bx-w-clc: calc((var(--flr-bx-w-mbl) * 1px) + (var(--flr-bx-w) - var(--flr-bx-w-mbl)) * ((var(--vw_) - 320px) / (1920 - 320)));

   --pd-v: clamp(calc(var(--sp-vp-min) * 0.6), var(--sp-vp), calc(var(--sp-vp-max) * 0.6) );

  .flr_hd {
    svg {
      width: 100%;
      height: auto;
    }
  }

  picture.bg img {
    mix-blend-mode: luminosity;
    opacity: 0.3;
  }

  .input-text {

    label.abs {
      opacity: 0;
      pointer-events: none;
    }

    :is(input, select, textarea)::placeholder {
      color: var(--text-color);
    }

    :is(input, select, textarea) {
      background: transparent;
      border-color: var(--text-color);
      border-width: 2px;
      border-radius: 0.444rem;
    }
  }
}

/* awards-v1.css */
.aws.v1 {
    --awd-mx-wd: 200;
    --awd-mx-wd-mbl: 128;
    --awd-mx-wd-clc: calc((var(--awd-mx-wd-mbl) * 1px) + (var(--awd-mx-wd) - var(--awd-mx-wd-mbl)) * ((var(--vw_) - 320px) / (1920 - 320)));
}
