/*!
 * DZ Custom Elements for WPBakery
 * All element styles. Class prefixes: dzfc dzpc dzib dzsc dzpr dzfs dzcr dzbn
 */

/* ==========================================================================
   Feature Card
   ========================================================================== */

.dzfc{position:relative;display:flex;flex-direction:column;height:100%;
 background:var(--dzfc-bg,transparent);
 border:1px solid var(--dzfc-border,#dcdcdc);overflow:hidden;
 transition:box-shadow .25s ease,transform .25s ease}
.dzfc:hover{box-shadow:0 6px 20px rgba(0,0,0,.12)}
.dzfc__media{position:relative;display:block;width:100%;overflow:hidden}
.dzfc__media--4-3{aspect-ratio:4/3}
.dzfc__media--3-2{aspect-ratio:3/2}
.dzfc__media--16-9{aspect-ratio:16/9}
.dzfc__media--1-1{aspect-ratio:1/1}
.dzfc__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.dzfc__media--auto img{height:auto}
.dzfc:hover .dzfc__media img{transform:scale(1.04)}
.dzfc__body{flex:1 1 auto;display:flex;flex-direction:column;padding:18px 20px 22px;text-align:center}
.dzfc .dzfc__title{margin:0 0 8px;font-size:20px;line-height:1.35;font-weight:700;
 color:var(--dzfc-title,#000);
 display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dzfc__desc{margin:0;font-size:15px;line-height:1.5;color:var(--dzfc-text,#000);
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;
 overflow:hidden;text-overflow:ellipsis;min-height:calc(15px * 1.5 * 2)}
.dzfc__arrow{margin-top:auto;padding-top:14px;display:flex;justify-content:center}
.dzfc__arrow a{display:inline-flex;align-items:center;color:var(--dzfc-arrow,#00adee);
 line-height:0;text-decoration:none;border:0}
.dzfc__arrow svg{width:38px;height:14px;display:block;transition:transform .25s ease}
.dzfc__arrow a:hover svg,.dzfc--clickable:hover .dzfc__arrow svg{transform:translateX(5px)}
.dzfc__arrow a:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.dzfc--clickable{cursor:pointer}
.dzfc--clickable .dzfc__arrow a::after{content:"";position:absolute;inset:0;z-index:1}
@media (max-width:767px){.dzfc .dzfc__title{font-size:18px}}
@media (prefers-reduced-motion:reduce){
 .dzfc,.dzfc__media img,.dzfc__arrow svg{transition:none}
 .dzfc:hover .dzfc__media img{transform:none}
 .dzfc__arrow a:hover svg,.dzfc--clickable:hover .dzfc__arrow svg{transform:none}
}

/* ==========================================================================
   Product Card
   ========================================================================== */

.dzpc{position:relative;display:flex;flex-direction:column;height:100%;
 background:var(--dzpc-bg,transparent);border:1px solid var(--dzpc-border,#dcdcdc);
 padding:var(--dzpc-pad-y,20px) var(--dzpc-pad,10px);
 overflow:hidden;transition:box-shadow .25s ease}
.dzpc:hover{box-shadow:0 6px 20px rgba(0,0,0,.10)}
.dzpc__inner{display:flex;align-items:center;gap:var(--dzpc-gap,10px);flex:1 1 auto}
.dzpc--media-right .dzpc__inner{flex-direction:row-reverse}
.dzpc__media{flex:0 0 var(--dzpc-media-w,50%);max-width:var(--dzpc-media-w,50%);
 align-self:stretch;display:flex;align-items:center;justify-content:center}
.dzpc__media img{display:block;width:100%;height:100%;max-height:240px;
 object-fit:contain;transition:transform .4s ease}
.dzpc--fit-cover .dzpc__media img{object-fit:cover;height:100%}
.dzpc:hover .dzpc__media img{transform:scale(1.03)}
.dzpc__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center}
.dzpc__eyebrow{margin:0 0 2px;font-size:13px;font-weight:700;letter-spacing:.06em;
 text-transform:uppercase;line-height:1.3;color:var(--dzpc-eyebrow,#000)}
.dzpc .dzpc__title{display:block;margin:0 0 10px;font-size:26px;font-weight:700;line-height:1.2;
 color:var(--dzpc-title,#00adee)}
.dzpc__title--1line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.dzpc__title a{color:inherit;text-decoration:none}
.dzpc__list{margin:0;padding:0;list-style:none}
.dzpc__list li{position:relative;padding-left:14px;font-size:14px;
 line-height:1.45;color:var(--dzpc-text,#000)}
.dzpc__list li::before{content:"\2022";position:absolute;left:0;top:0;color:var(--dzpc-text,#000)}
.dzpc__text{margin:0;font-size:14px;line-height:1.55;color:var(--dzpc-text,#000)}
.dzpc__footer{margin-top:16px;display:flex;justify-content:center}
.dzpc__body .dzpc__footer{margin-top:14px;justify-content:flex-start}
.dzpc__btn{display:inline-flex;align-items:center;justify-content:center;
 height:42px;min-width:60%;padding:0 26px;box-sizing:border-box;border:0;
 border-radius:var(--dzpc-btn-radius,8px);
 font-size:14px;font-weight:700;letter-spacing:.08em;
 text-transform:uppercase;text-decoration:none;
 background:var(--dzpc-btn-bg,#00adee);color:var(--dzpc-btn,#fff);
 transition:background-color .25s ease,box-shadow .25s ease,transform .25s ease}
.dzpc__btn > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dzpc--btn-raised .dzpc__btn{box-shadow:0 4px 12px rgba(0,0,0,.22)}
.dzpc__btn:hover,.dzpc__btn:focus,
.dzpc:hover .dzpc__btn{background:var(--dzpc-btn-hover,#0090c6);color:var(--dzpc-btn,#fff)}
.dzpc--btn-raised .dzpc__btn:hover,
.dzpc--btn-raised .dzpc__btn:focus,
.dzpc--btn-raised:hover .dzpc__btn{box-shadow:0 7px 18px rgba(0,0,0,.28);transform:translateY(-2px)}
.dzpc__btn:focus-visible{outline:2px solid var(--dzpc-btn-hover,#0090c6);outline-offset:3px}
.dzpc--btn-full .dzpc__btn{width:100%}
@media (max-width:767px){
 .dzpc__inner,.dzpc--media-right .dzpc__inner{flex-direction:column;gap:var(--dzpc-gap,10px)}
 .dzpc__media{flex:0 0 auto;max-width:100%;width:100%}
 .dzpc__body{text-align:center}
 .dzpc__list{display:inline-block;text-align:left}
 .dzpc__body .dzpc__footer{justify-content:center}
 .dzpc .dzpc__title{font-size:22px}
}
@media (prefers-reduced-motion:reduce){
 .dzpc,.dzpc__media img,.dzpc__btn{transition:none}
 .dzpc:hover .dzpc__media img{transform:none}
 .dzpc--btn-raised .dzpc__btn:hover,.dzpc--btn-raised:hover .dzpc__btn{transform:none}
}

/* ==========================================================================
   Image Button Card
   ========================================================================== */

.dzib{position:relative;display:flex;flex-direction:column;height:100%;background:#fff;
 border:1px solid var(--dzib-border,#dcdcdc);overflow:hidden;
 transition:box-shadow .3s ease,transform .3s ease}
.dzib--shadow-soft{box-shadow:0 2px 8px rgba(0,0,0,.08)}
.dzib--shadow-medium{box-shadow:0 4px 14px rgba(0,0,0,.12)}
.dzib--shadow-strong{box-shadow:0 8px 26px rgba(0,0,0,.18)}
.dzib--lift:hover{transform:translateY(-3px)}
.dzib--shadow-soft.dzib--lift:hover{box-shadow:0 8px 22px rgba(0,0,0,.15)}
.dzib--shadow-medium.dzib--lift:hover{box-shadow:0 10px 28px rgba(0,0,0,.18)}
.dzib--shadow-strong.dzib--lift:hover{box-shadow:0 14px 36px rgba(0,0,0,.24)}
.dzib__highlight{display:flex;align-items:center;justify-content:center;
 width:80%;min-height:35px;margin:10px auto 0;padding:6px 14px;box-sizing:border-box;
 border-radius:8px;
 font-size:13px;font-weight:700;letter-spacing:.08em;
 text-transform:uppercase;line-height:1.3;text-align:center;
 background:var(--dzib-hl-bg,#2eb84c);color:var(--dzib-hl-color,#fff);
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Kept in the flow with no fill so cards without a label still line up */
.dzib__highlight--empty{background:transparent}
.dzib__media{position:relative;width:100%;overflow:hidden;
 background:var(--dzib-media-bg,#fff);box-sizing:border-box}
.dzib__media--4-3{aspect-ratio:4/3}
.dzib__media--3-2{aspect-ratio:3/2}
.dzib__media--16-9{aspect-ratio:16/9}
.dzib__media--1-1{aspect-ratio:1/1}
.dzib__media img{display:block;width:100%;height:100%;object-fit:contain;
 transition:transform .4s ease}
.dzib--fit-cover .dzib__media img{object-fit:cover}
.dzib__media--auto img{height:auto}
.dzib:hover .dzib__media img{transform:scale(1.04)}
.dzib__body{padding:14px 16px 0}
.dzib__body:last-child{padding-bottom:16px}
.dzib--text-center .dzib__body{text-align:center}
.dzib--text-left .dzib__body{text-align:left}
.dzib .dzib__title{display:block;margin:0 0 6px;font-size:18px;font-weight:700;line-height:1.35;
 color:var(--dzib-title,#000)}
.dzib__title--1line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dzib__title a{color:inherit;text-decoration:none}
.dzib__info{display:flex;align-items:center;gap:8px;margin:0 0 8px;
 font-size:14px;line-height:1.4;color:var(--dzib-info,#000)}
.dzib--text-center .dzib__info{justify-content:center}
.dzib__info .dzib__icon{font-size:16px;line-height:1;color:var(--dzib-icon,#00adee);
 flex:0 0 auto}
.dzib__info .dzib__icon-img{width:18px;height:18px;object-fit:contain;flex:0 0 auto;display:block}
.dzib__desc{margin:0;font-size:14px;line-height:1.5;color:var(--dzib-text,#000)}
.dzib--desc-1 .dzib__desc,
.dzib--desc-2 .dzib__desc,
.dzib--desc-3 .dzib__desc{display:-webkit-box;-webkit-box-orient:vertical;
 overflow:hidden;text-overflow:ellipsis}
.dzib--desc-1 .dzib__desc{-webkit-line-clamp:1;line-clamp:1;min-height:calc(14px * 1.5)}
.dzib--desc-2 .dzib__desc{-webkit-line-clamp:2;line-clamp:2;min-height:calc(14px * 1.5 * 2)}
.dzib--desc-3 .dzib__desc{-webkit-line-clamp:3;line-clamp:3;min-height:calc(14px * 1.5 * 3)}
.dzib__footer{margin-top:auto;display:flex;padding-top:14px}
.dzib__btn{display:flex;align-items:center;justify-content:center;
 width:100%;height:42px;box-sizing:border-box;padding:0 16px;
 font-size:15px;font-weight:600;line-height:1.3;text-align:center;text-decoration:none;
 border:0;border-radius:var(--dzib-btn-radius,8px);
 background:var(--dzib-btn-bg,#fff);color:var(--dzib-btn-color,#000);
 transition:background-color .25s ease,color .25s ease,border-color .25s ease}
.dzib__btn > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dzib--upper .dzib__btn{text-transform:uppercase;letter-spacing:.06em;font-size:14px}
/* The bar sits flush against its divider line, so no gap above it */
.dzib--btn-bar .dzib__footer{border-top:1px solid var(--dzib-border,#dcdcdc);padding-top:0}
.dzib--btn-bar .dzib__btn{border-radius:0}
.dzib--btn-outline .dzib__footer,
.dzib--btn-solid .dzib__footer{padding:14px 14px 14px}
.dzib--btn-outline .dzib__btn{border:var(--dzib-btn-bw,2px) solid var(--dzib-btn-border,#00adee)}
.dzib--btn-solid .dzib__btn{background:var(--dzib-btn-border,#00adee);
 color:var(--dzib-btn-hover-color,#fff)}
a.dzib__btn:hover,a.dzib__btn:focus,
.dzib--clickable:hover a.dzib__btn{background:var(--dzib-btn-hover-bg,#00adee);
 color:var(--dzib-btn-hover-color,#fff);border-color:var(--dzib-btn-hover-bg,#00adee)}
.dzib--btn-solid a.dzib__btn:hover,
.dzib--btn-solid.dzib--clickable:hover a.dzib__btn{filter:brightness(1.12)}
a.dzib__btn:focus-visible{outline:2px solid var(--dzib-btn-hover-bg,#00adee);outline-offset:2px}
.dzib--clickable a.dzib__btn::after{content:"";position:absolute;inset:0;z-index:1}
@media (prefers-reduced-motion:reduce){
 .dzib,.dzib__media img,.dzib__btn{transition:none}
 .dzib--lift:hover{transform:none}
 .dzib:hover .dzib__media img{transform:none}
}

/* ==========================================================================
   Spec Card
   ========================================================================== */

.dzsc{position:relative;display:flex;flex-direction:column;height:100%;
 background:var(--dzsc-bg,transparent);border:1px solid var(--dzsc-border,#dcdcdc);
 overflow:hidden;transition:box-shadow .25s ease}
.dzsc:hover{box-shadow:0 6px 20px rgba(0,0,0,.12)}
.dzsc__media{position:relative;width:100%;overflow:hidden;padding:14px 14px 0;box-sizing:border-box}
.dzsc__media--4-3{aspect-ratio:4/3}
.dzsc__media--3-2{aspect-ratio:3/2}
.dzsc__media--16-9{aspect-ratio:16/9}
.dzsc__media--1-1{aspect-ratio:1/1}
.dzsc__media img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .4s ease}
.dzsc--fit-cover .dzsc__media img{object-fit:cover}
.dzsc__media--auto img{height:auto}
.dzsc:hover .dzsc__media img{transform:scale(1.04)}
.dzsc__body{flex:1 1 auto;display:flex;flex-direction:column;padding:14px 18px 18px}
.dzsc--align-left .dzsc__body{text-align:left}
.dzsc--align-center .dzsc__body{text-align:center}
.dzsc--align-right .dzsc__body{text-align:right}
.dzsc .dzsc__title{display:block;margin:0 0 4px;font-size:var(--dzsc-title-size,22px);font-weight:700;
 line-height:1.2;letter-spacing:.01em;color:var(--dzsc-title,#000)}
.dzsc__title--1line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dzsc__title a{color:inherit;text-decoration:none}
/* An h5 is bold by default, so the regular weight has to be spelt out and the
   Strong option becomes a modifier rather than a nested <strong>. */
.dzsc .dzsc__subtitle{display:block;margin:0 0 10px;font-size:var(--dzsc-sub-size,17px);line-height:1.35;
 font-weight:400;color:var(--dzsc-sub,#000)}
.dzsc .dzsc__subtitle--strong{font-weight:700}
/* The badge is a flex item now that the inner span is gone, so align-self keeps
   it hugging its text instead of stretching across the card. */
.dzsc .dzsc__highlight{display:inline-block;align-self:center;
 margin:0 0 12px;padding:7px 18px;
 border-radius:var(--dzsc-radius,8px);
 font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.2;
 color:var(--dzsc-hl-color,#fff);background:var(--dzsc-hl,#c9971f)}
.dzsc--align-left .dzsc__highlight{align-self:flex-start}
.dzsc--align-right .dzsc__highlight{align-self:flex-end}
.dzsc__list{margin:0 0 12px;padding:0;list-style:none;font-size:15px;line-height:1.5;
 color:var(--dzsc-text,#000)}
.dzsc--list-center .dzsc__list{display:inline-block;text-align:left}
.dzsc--list-left .dzsc__list{text-align:left}
.dzsc__list li{position:relative;padding-left:22px;}
.dzsc__list li::before{position:absolute;left:0;top:0;color:var(--dzsc-marker,#000);font-weight:700}
.dzsc--marker-check .dzsc__list li::before{content:"\2713"}
.dzsc--marker-dot   .dzsc__list li::before{content:"\2022"}
.dzsc--marker-dash  .dzsc__list li::before{content:"\2013"}
.dzsc--marker-none  .dzsc__list li{padding-left:0}
.dzsc .dzsc__price{margin:auto 0 0;padding-top:6px;font-size:17px;font-weight:700;line-height:1.3;
 color:var(--dzsc-price,#00adee)}
.dzsc__footer{padding:0 18px 18px}
.dzsc__btn{display:flex;align-items:center;justify-content:center;
 width:100%;height:42px;box-sizing:border-box;padding:0 16px;border:0;
 border-radius:var(--dzsc-radius,8px);
 font-size:15px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
 line-height:1.3;text-align:center;text-decoration:none;
 background:var(--dzsc-btn-bg,#00adee);color:var(--dzsc-btn-color,#fff);
 transition:background-color .25s ease,box-shadow .25s ease,transform .25s ease}
.dzsc__btn > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dzsc--btn-raised .dzsc__btn{box-shadow:0 4px 12px rgba(0,0,0,.22)}
.dzsc__btn:hover,.dzsc__btn:focus,
.dzsc:hover .dzsc__btn{background:var(--dzsc-btn-hover,#0090c6);color:var(--dzsc-btn-color,#fff)}
.dzsc--btn-raised .dzsc__btn:hover,
.dzsc--btn-raised .dzsc__btn:focus,
.dzsc--btn-raised:hover .dzsc__btn{box-shadow:0 7px 18px rgba(0,0,0,.28);transform:translateY(-2px)}
.dzsc__btn:focus-visible{outline:2px solid var(--dzsc-btn-hover,#0090c6);outline-offset:2px}
@media (max-width:767px){
 .dzsc .dzsc__title{font-size:calc(var(--dzsc-title-size,22px) * .88)}
 .dzsc__list{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
 .dzsc,.dzsc__media img,.dzsc__btn{transition:none}
 .dzsc:hover .dzsc__media img{transform:none}
 .dzsc--btn-raised .dzsc__btn:hover,.dzsc--btn-raised:hover .dzsc__btn{transform:none}
}

/* ==========================================================================
   Promo Card
   ========================================================================== */

.dzpr{position:relative;display:flex;flex-direction:column;height:100%;
 background:var(--dzpr-bg,transparent);border:1px solid var(--dzpr-border,#e3e6ea);
 border-radius:var(--dzpr-radius,8px);overflow:hidden;
 transition:box-shadow .3s ease,transform .3s ease}
.dzpr--shadow-soft{box-shadow:0 2px 8px rgba(0,0,0,.08)}
.dzpr--shadow-medium{box-shadow:0 4px 14px rgba(0,0,0,.12)}
.dzpr--shadow-strong{box-shadow:0 8px 26px rgba(0,0,0,.18)}
.dzpr--shadow-soft:hover{box-shadow:0 8px 22px rgba(0,0,0,.15)}
.dzpr--shadow-medium:hover{box-shadow:0 10px 28px rgba(0,0,0,.18)}
.dzpr--shadow-strong:hover{box-shadow:0 14px 36px rgba(0,0,0,.24)}
.dzpr__media{position:relative;width:100%;overflow:hidden;box-sizing:border-box}
.dzpr__media--4-3{aspect-ratio:4/3}
.dzpr__media--3-2{aspect-ratio:3/2}
.dzpr__media--16-9{aspect-ratio:16/9}
.dzpr__media--1-1{aspect-ratio:1/1}
.dzpr__media img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .4s ease}
.dzpr--fit-cover .dzpr__media img{object-fit:cover}
.dzpr__media--auto img{height:auto}
.dzpr:hover .dzpr__media img{transform:scale(1.04)}
.dzpr__highlight{padding:9px 14px;font-size:13px;font-weight:700;letter-spacing:.08em;
 text-transform:uppercase;line-height:1.3;text-align:center;
 background:var(--dzpr-hl-bg,#3aa93a);color:var(--dzpr-hl-color,#fff);
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dzpr__body{flex:1 1 auto;display:flex;flex-direction:column;padding:14px 18px 4px;text-align:center}

/* --- Side by side: image left, everything else right --- */
/* The image and text sit in their own row, so the highlight bar above it still
   spans the full width of the card. */
.dzpr__row{display:flex;align-items:stretch;flex:1 1 auto;min-height:0}
.dzpr--media-right .dzpr__row{flex-direction:row-reverse}
.dzpr--layout-side .dzpr__media{flex:0 0 var(--dzpr-media-w,44%);
 max-width:var(--dzpr-media-w,44%);aspect-ratio:auto;
 display:flex;align-items:center;justify-content:center;padding:16px}
.dzpr--layout-side .dzpr__media img{height:auto}
.dzpr__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.dzpr--layout-side .dzpr__body{padding:16px 18px 4px;text-align:left}
.dzpr--layout-side .dzpr__pill-wrap,
.dzpr--layout-side .dzpr__list{text-align:left;display:block}
@media (max-width:767px){
 .dzpr__row,.dzpr--media-right .dzpr__row{flex-direction:column}
 .dzpr--layout-side .dzpr__media{flex:0 0 auto;max-width:100%;padding:0;
  aspect-ratio:4/3}
 .dzpr--layout-side .dzpr__media img{height:100%;max-height:none}
}
.dzpr .dzpr__title{display:block;margin:0 0 4px;font-size:24px;font-weight:700;line-height:1.2;
 color:var(--dzpr-title,#000)}
.dzpr__title--1line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dzpr__title a{color:inherit;text-decoration:none}
/* Weight is a class now that the inner <strong> is gone; an h5 default would
   otherwise render the Normal option bold. Keeps -webkit-box for the clamp. */
.dzpr .dzpr__subtitle{margin:0 0 6px;font-size:14px;letter-spacing:.04em;line-height:1.35;
 font-weight:400;color:var(--dzpr-sub,#000);
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;
 overflow:hidden;text-overflow:ellipsis;min-height:calc(14px * 1.35 * 2)}
.dzpr .dzpr__subtitle--strong{font-weight:700}
.dzpr__price{margin:0 0 12px;font-size:26px;font-weight:800;line-height:1.2;
 color:var(--dzpr-price,#000);
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dzpr__pill-wrap{margin:0 0 14px}
.dzpr--list-left .dzpr__pill-wrap{text-align:left}
.dzpr__pill{display:inline-flex;align-items:center;gap:8px;max-width:100%;
 padding:8px;box-sizing:border-box;border-radius:var(--dzpr-radius,8px);
 border:1px solid var(--dzpr-pill-border,#00adee);background:var(--dzpr-pill-bg,#fff);
 font-size:15px;font-weight:600;line-height:1.35;color:var(--dzpr-pill,#00adee);
 text-align:left}
.dzpr__pill > span{min-width:0}
.dzpr__pill .dzpr__icon{font-size:17px;line-height:1;flex:0 0 auto;color:var(--dzpr-icon,#00adee)}
.dzpr__pill .dzpr__icon-img{width:19px;height:19px;object-fit:contain;flex:0 0 auto;display:block}
.dzpr__list{margin:0;padding:0;list-style:none;font-size:15px;line-height:1.5;
 color:var(--dzpr-text,#000)}
.dzpr--list-center .dzpr__list{display:inline-block;text-align:left}
.dzpr--list-left .dzpr__list{text-align:left}
.dzpr__list li{position:relative;padding-left:24px;}
/* Gap above the button lives here, so cards without a list keep it tight */
.dzpr__list{padding-bottom:16px}
.dzpr__list li::before{position:absolute;left:0;top:0;font-weight:700;
 color:var(--dzpr-marker,#00adee)}
.dzpr--marker-check .dzpr__list li::before{content:"\2713"}
.dzpr--marker-dot   .dzpr__list li::before{content:"\2022"}
.dzpr--marker-dash  .dzpr__list li::before{content:"\2013"}
.dzpr--marker-none  .dzpr__list li{padding-left:0}
.dzpr__footer{margin-top:auto;padding:0 18px 18px}
.dzpr__btn{display:flex;align-items:center;justify-content:center;
 width:100%;height:42px;box-sizing:border-box;padding:0 16px;border:0;
 border-radius:var(--dzpr-radius,8px);
 font-size:15px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
 line-height:1.3;text-align:center;text-decoration:none;
 background:var(--dzpr-btn-bg,#00adee);color:var(--dzpr-btn-color,#fff);
 box-shadow:0 4px 12px rgba(0,0,0,.22);
 transition:background-color .25s ease,box-shadow .25s ease,transform .25s ease}
.dzpr__btn > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dzpr__btn:hover,.dzpr__btn:focus,
.dzpr:hover .dzpr__btn{background:var(--dzpr-btn-hover,#0090c6);color:var(--dzpr-btn-color,#fff);
 box-shadow:0 7px 18px rgba(0,0,0,.28);transform:translateY(-2px)}
.dzpr__btn:focus-visible{outline:2px solid var(--dzpr-btn-hover,#0090c6);outline-offset:2px}
@media (max-width:767px){.dzpr .dzpr__title{font-size:21px}.dzpr__price{font-size:23px}}
@media (prefers-reduced-motion:reduce){
 .dzpr,.dzpr__media img,.dzpr__btn{transition:none}
 .dzpr:hover .dzpr__media img{transform:none}
 .dzpr__btn:hover,.dzpr:hover .dzpr__btn{transform:none}
}

/* ==========================================================================
   Feature Strip
   ========================================================================== */

.dzfs{position:relative;width:100%;overflow:hidden}
.dzfs__grid{display:grid;grid-template-columns:repeat(var(--dzfs-cols,6),minmax(0,1fr));
 margin-left:calc(var(--dzfs-dw,1px) * -1);margin-top:calc(var(--dzfs-dw,1px) * -1)}
.dzfs__item{position:relative;min-width:0;padding:var(--dzfs-pad,18px);
 box-sizing:border-box;display:flex}
.dzfs--icon-top .dzfs__item{flex-direction:column}
.dzfs--icon-left .dzfs__item{flex-direction:row;gap:var(--dzfs-gap,14px)}
.dzfs--icon-left.dzfs--align-center .dzfs__item{align-items:center}
.dzfs--icon-left.dzfs--align-start .dzfs__item{align-items:flex-start}
.dzfs--text-center .dzfs__item{text-align:center}
.dzfs--text-left .dzfs__item{text-align:left}
.dzfs--icon-top.dzfs--text-center .dzfs__item{align-items:center}
.dzfs--icon-top.dzfs--text-left .dzfs__item{align-items:flex-start}
.dzfs--icon-left.dzfs--text-center .dzfs__item{justify-content:center;text-align:left}
.dzfs__text{min-width:0}
/* Dividers are pseudo elements rather than borders so they can stop short of
   each end. The grid is nudged left and up by the divider width, so the ones on
   the first column and first row fall outside the clipped container. */
.dzfs--divider-vertical .dzfs__item::before,
.dzfs--divider-both .dzfs__item::before{content:"";position:absolute;
 left:calc(var(--dzfs-dw,1px) * -1);top:var(--dzfs-inset,20%);bottom:var(--dzfs-inset,20%);
 width:var(--dzfs-dw,1px);background:var(--dzfs-divider,#e0e4ea)}
.dzfs--divider-both .dzfs__item::after{content:"";position:absolute;
 top:calc(var(--dzfs-dw,1px) * -1);left:var(--dzfs-inset,20%);right:var(--dzfs-inset,20%);
 height:var(--dzfs-dw,1px);background:var(--dzfs-divider,#e0e4ea)}
.dzfs__media{line-height:0;display:flex;align-items:center;justify-content:center;
 min-height:var(--dzfs-icon,46px)}
.dzfs--icon-top .dzfs__media{margin:0 0 var(--dzfs-gap,14px)}
.dzfs--icon-left .dzfs__media{flex:0 0 auto}
.dzfs--text-left .dzfs__media{justify-content:flex-start}
.dzfs__media .dzfs__icon-img{display:block;width:auto;max-width:100%;height:auto;
 max-height:var(--dzfs-icon,46px)}
.dzfs__media .dzfs__icon{font-size:var(--dzfs-icon,46px);line-height:1;
 color:var(--dzfs-icon-color,#00adee)}
.dzfs .dzfs__title{display:block;margin:0 0 6px;font-size:var(--dzfs-title-size,14px);font-weight:700;
 line-height:1.3;letter-spacing:.03em;color:var(--dzfs-title,#000)}
.dzfs--upper .dzfs .dzfs__title{text-transform:uppercase}
.dzfs__title a{color:inherit;text-decoration:none}
.dzfs__title a:hover{text-decoration:underline}
.dzfs__desc{margin:0;font-size:var(--dzfs-text-size,15px);line-height:1.45;
 color:var(--dzfs-text,#eee)}
.dzfs__item--link{transition:opacity .2s ease}
.dzfs__item--link:hover{opacity:.85}
@media (max-width:1024px){
 .dzfs__grid{grid-template-columns:repeat(var(--dzfs-cols-t,3),minmax(0,1fr))}
}
@media (max-width:600px){
 .dzfs__grid{grid-template-columns:repeat(var(--dzfs-cols-m,2),minmax(0,1fr))}
 /* Narrow columns leave no room for a left-aligned icon beside the text, so
    every item stacks and centres regardless of the desktop setting. */
 .dzfs__item,.dzfs--icon-left .dzfs__item{flex-direction:column;align-items:center;
  text-align:center}
 .dzfs--icon-left .dzfs__media,.dzfs__media{justify-content:center;margin:0 0 10px}
 .dzfs__text{width:100%}
}
@media (prefers-reduced-motion:reduce){.dzfs__item--link{transition:none}}

/* ==========================================================================
   Image Carousel
   ========================================================================== */

.dzcr{position:relative;width:100%}
.dzcr__viewport{overflow:hidden;padding:6px 0}
.dzcr__track{display:flex;will-change:transform}
.dzcr__slide{flex:0 0 auto;box-sizing:border-box;
 padding:0 calc(var(--dzcr-gap,20px) / 2)}
.dzcr__inner{transition:transform .4s ease,opacity .4s ease}
.dzcr--slide.dzcr--emphasis .dzcr__slide .dzcr__inner{transform:scale(var(--dzcr-scale,.84));
 opacity:var(--dzcr-opacity,.55)}
.dzcr--slide.dzcr--emphasis .dzcr__slide.is-center .dzcr__inner{transform:scale(1);opacity:1}
.dzcr__media{position:relative;display:block;width:100%;overflow:hidden;background:#f2f2f2;
 border-radius:var(--dzcr-radius,8px)}
.dzcr__media--4-3{aspect-ratio:4/3}
.dzcr__media--3-2{aspect-ratio:3/2}
.dzcr__media--16-9{aspect-ratio:16/9}
.dzcr__media--1-1{aspect-ratio:1/1}
.dzcr__media img{display:block;width:100%;height:100%;object-fit:cover}
.dzcr--fit-contain .dzcr__media img{object-fit:contain}
.dzcr__media--auto img{height:auto}
.dzcr__caption{margin-top:10px;font-size:14px;line-height:1.4;text-align:center;
 color:var(--dzcr-caption,#000)}
.dzcr__nav{position:absolute;top:50%;z-index:3;display:flex;align-items:center;
 justify-content:center;width:42px;height:42px;padding:0;margin-top:-21px;
 border:0;border-radius:50%;cursor:pointer;
 background:var(--dzcr-arrow-bg,#fff);color:var(--dzcr-arrow,#000);
 box-shadow:0 2px 10px rgba(0,0,0,.18);
 transition:opacity .2s ease,transform .2s ease}
.dzcr__nav svg{width:20px;height:20px;display:block}
.dzcr__nav--prev{left:-6px}
.dzcr__nav--next{right:-6px}
.dzcr__nav:hover{transform:scale(1.08)}
.dzcr__nav[disabled]{opacity:.35;cursor:default;transform:none}
.dzcr__nav:focus-visible{outline:2px solid var(--dzcr-dot-on,#00adee);outline-offset:2px}
.dzcr__dots{display:flex;justify-content:center;gap:8px;margin-top:16px}
.dzcr__dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer;
 background:var(--dzcr-dot-off,#c9d3e0);transition:background-color .2s ease,transform .2s ease}
.dzcr__dot.is-active{background:var(--dzcr-dot-on,#00adee);transform:scale(1.25)}
.dzcr__dot:focus-visible{outline:2px solid var(--dzcr-dot-on,#00adee);outline-offset:2px}
.dzcr.is-dragging .dzcr__track{cursor:grabbing}
@media (max-width:600px){
 .dzcr__nav{width:34px;height:34px;margin-top:-17px}
 .dzcr__nav svg{width:16px;height:16px}
 .dzcr__nav--prev{left:2px}
 .dzcr__nav--next{right:2px}
}
@media (prefers-reduced-motion:reduce){
 .dzcr__inner,.dzcr__nav,.dzcr__dot{transition:none}
}

/* --- Coverflow: slides stacked at the centre, each with its own 3D transform --- */
/* Clipping happens on the outer box: the viewport keeps overflow visible so the
   3D transforms are not flattened, and the side slides are cut at the frame. */
.dzcr--coverflow{overflow:hidden}
.dzcr--coverflow .dzcr__viewport{overflow:visible;padding:0;
 perspective:var(--dzcr-perspective,1200px);perspective-origin:50% 50%}
.dzcr--coverflow .dzcr__track{position:relative;display:block;
 transform-style:preserve-3d;will-change:height}
.dzcr--coverflow .dzcr__slide{position:absolute;top:0;left:50%;
 width:var(--dzcr-center-w,42%);padding:0;
 transition:transform .55s cubic-bezier(.25,.8,.3,1),opacity .45s ease;
 will-change:transform}
.dzcr--coverflow .dzcr__slide.is-hidden{opacity:0;pointer-events:none}
.dzcr--coverflow .dzcr__slide:not(.is-center){cursor:pointer}
.dzcr--coverflow .dzcr__inner{transition:box-shadow .45s ease}
.dzcr--coverflow .dzcr__media{box-shadow:0 10px 26px rgba(0,0,0,.22)}
.dzcr--coverflow .dzcr__slide.is-center .dzcr__media{box-shadow:0 18px 42px rgba(0,0,0,.30)}
.dzcr--coverflow .dzcr__caption{opacity:0;transition:opacity .35s ease}
.dzcr--coverflow .dzcr__slide.is-center .dzcr__caption{opacity:1}
.dzcr--coverflow .dzcr__nav--prev{left:8px}
.dzcr--coverflow .dzcr__nav--next{right:8px}
@media (prefers-reduced-motion:reduce){
 .dzcr--coverflow .dzcr__slide{transition:none}
}

/* ==========================================================================
   Split Banner
   ========================================================================== */

.dzbn{position:relative;width:100%;min-height:var(--dzbn-min-h,440px);
 border-radius:var(--dzbn-radius,24px);overflow:hidden;isolation:isolate;
 display:flex;align-items:center;background:#e9edf2}
.dzbn__media{position:absolute;inset:0;z-index:0}
.dzbn__media img{display:block;width:100%;height:100%;object-fit:cover;
 object-position:var(--dzbn-focus,center)}
.dzbn__panel{position:absolute;top:0;bottom:0;z-index:1;width:var(--dzbn-w,58%);
 opacity:var(--dzbn-panel-op,1);pointer-events:none}
.dzbn--panel-left .dzbn__panel{left:0}
.dzbn--panel-right .dzbn__panel{right:0}
.dzbn__shape{display:block;width:100%;height:100%}
.dzbn--panel-right .dzbn__shape{transform:scaleX(-1)}
.dzbn__content{position:relative;z-index:2;box-sizing:border-box;
 width:var(--dzbn-w,58%);padding:var(--dzbn-pad,56px);
 padding-right:calc(var(--dzbn-pad,56px) * 1.6)}
.dzbn--panel-right .dzbn__content{margin-left:auto;
 padding-right:var(--dzbn-pad,56px);padding-left:calc(var(--dzbn-pad,56px) * 1.6)}
.dzbn .dzbn__title{display:block;margin:0 0 18px;font-size:var(--dzbn-title-size,40px);font-weight:700;
 line-height:1.15;letter-spacing:-.01em;color:var(--dzbn-title,#fff)}
.dzbn__text{margin:0 0 14px;font-size:var(--dzbn-text-size,16px);line-height:1.55;
 color:var(--dzbn-text,#fff)}
.dzbn__text:last-of-type{margin-bottom:0}
.dzbn__list{margin:18px 0 0;padding:0;list-style:none;
 font-size:var(--dzbn-list-size,16px);line-height:1.5;color:var(--dzbn-list,#fff)}
.dzbn--list-2col .dzbn__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 column-gap:20px}
.dzbn__list li{position:relative;padding-left:24px}
.dzbn__list li::before{position:absolute;left:0;top:0;font-weight:700;
 color:var(--dzbn-marker,#fff)}
.dzbn--marker-check .dzbn__list li::before{content:"\2713"}
.dzbn--marker-dot   .dzbn__list li::before{content:"\2022"}
.dzbn--marker-dash  .dzbn__list li::before{content:"\2013"}
.dzbn--marker-none  .dzbn__list li{padding-left:0}
.dzbn__actions{margin-top:26px}
.dzbn__btn{display:inline-flex;align-items:center;gap:10px;
 padding:13px 26px;box-sizing:border-box;
 border-radius:var(--dzbn-btn-radius,8px);
 font-size:16px;font-weight:700;line-height:1.3;text-decoration:none;
 color:var(--dzbn-btn,#fff);
 transition:background-color .25s ease,color .25s ease,border-color .25s ease}
.dzbn--btn-outline .dzbn__btn{background:transparent;
 border:2px solid var(--dzbn-btn-border,#fff)}
.dzbn--btn-solid .dzbn__btn{background:var(--dzbn-btn-border,#fff);border:2px solid transparent}
.dzbn__btn-arrow{width:19px;height:19px;display:block;flex:0 0 auto;
 transition:transform .25s ease}
.dzbn__btn:hover,.dzbn__btn:focus{background:var(--dzbn-btn-hover-bg,#fff);
 color:var(--dzbn-btn-hover-color,#3b4899);border-color:var(--dzbn-btn-hover-bg,#fff)}
.dzbn__btn:hover .dzbn__btn-arrow{transform:translateX(4px)}
.dzbn__btn:focus-visible{outline:2px solid var(--dzbn-btn-border,#fff);outline-offset:3px}
@media (max-width:1024px){
 .dzbn__content{width:66%;padding:calc(var(--dzbn-pad,56px) * .75);
  padding-right:calc(var(--dzbn-pad,56px) * 1.1)}
 .dzbn--panel-right .dzbn__content{padding-left:calc(var(--dzbn-pad,56px) * 1.1);
  padding-right:calc(var(--dzbn-pad,56px) * .75)}
 .dzbn__panel{width:calc(var(--dzbn-w,58%) + 12%)}
 .dzbn__content{position:relative}
 .dzbn .dzbn__title{font-size:calc(var(--dzbn-title-size,40px) * .8)}
}
@media (max-width:767px){
 .dzbn{display:block;min-height:0}
 .dzbn__media{position:relative;inset:auto;width:100%;height:240px}
 .dzbn__panel{position:absolute;top:240px;bottom:0;left:0;right:0;width:100%;
  background:var(--dzbn-panel,#3b4899)}
 .dzbn__shape{display:none}
 .dzbn__content,.dzbn--panel-right .dzbn__content{width:100%;margin:0;
  padding:calc(var(--dzbn-pad,56px) * .65)}
 .dzbn .dzbn__title{font-size:calc(var(--dzbn-title-size,40px) * .7)}
 .dzbn--list-2col .dzbn__list{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){
 .dzbn__btn,.dzbn__btn-arrow{transition:none}
 .dzbn__btn:hover .dzbn__btn-arrow{transform:none}
}

/* ==========================================================================
   CTA Banner
   ========================================================================== */

.dzct{position:relative;display:flex;align-items:flex-start;width:100%;
 min-height:var(--dzct-min-h,300px);background:var(--dzct-bg,transparent);
 border-radius:var(--dzct-radius,8px);overflow:hidden;isolation:isolate}
.dzct--shadow{box-shadow:0 4px 16px rgba(0,0,0,.12)}
.dzct__content{position:relative;z-index:2;flex:1 1 auto;min-width:0;
 box-sizing:border-box;padding:var(--dzct-pad,32px)}
/*
 * The photo column is pulled back over the text column with a negative margin,
 * but sits below it so the copy is never covered. pointer-events:none keeps
 * the overlap harmless either way: clicks pass straight through the image
 * rather than being swallowed by the part that reaches over the text.
 */
/* The text starts at the top of the banner while the photo stays centred
   against it, so a short column of copy still reads as balanced. */
.dzct__media{position:relative;z-index:1;pointer-events:none;
 flex:0 0 var(--dzct-media-w,52%);max-width:var(--dzct-media-w,52%);
 align-self:center}
.dzct--media-right .dzct__media{margin-left:calc(var(--dzct-overlap,12%) * -1)}
.dzct--media-left .dzct__media{order:-1;margin-right:calc(var(--dzct-overlap,12%) * -1)}
.dzct__media img{display:block;width:100%;height:auto;object-fit:contain;
 object-position:var(--dzct-focus,center)}
.dzct .dzct__title{display:block;margin:0 0 10px;font-size:var(--dzct-title-size,28px);font-weight:700;
 line-height:1.2;letter-spacing:-.01em;color:var(--dzct-title,#000)}
.dzct__text{margin:0 0 10px;font-size:15px;line-height:1.5;color:var(--dzct-text,#000)}
.dzct__text:last-of-type{margin-bottom:0}
.dzct__list{margin:16px 0 0;padding:0;list-style:none;font-size:15px;line-height:1.5;
 color:var(--dzct-list,#000)}
.dzct__list li{position:relative;padding-left:24px}
.dzct__list li::before{position:absolute;left:0;top:0;font-weight:700;
 color:var(--dzct-marker,#00adee)}
.dzct--marker-check .dzct__list li::before{content:"\2713"}
.dzct--marker-dot   .dzct__list li::before{content:"\2022"}
.dzct--marker-dash  .dzct__list li::before{content:"\2013"}
.dzct--marker-none  .dzct__list li{padding-left:0}
.dzct__actions{margin-top:22px}
.dzct__btn{display:inline-flex;align-items:center;justify-content:center;
 height:42px;padding:0 26px;box-sizing:border-box;border:0;
 border-radius:var(--dzct-radius,8px);
 font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
 line-height:1.3;text-decoration:none;
 background:var(--dzct-btn-bg,#00adee);color:var(--dzct-btn-color,#fff);
 box-shadow:0 4px 12px rgba(0,0,0,.22);
 transition:background-color .25s ease,box-shadow .25s ease,transform .25s ease}
.dzct__btn > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dzct__btn:hover,.dzct__btn:focus{background:var(--dzct-btn-hover,#0090c6);
 color:var(--dzct-btn-color,#fff);box-shadow:0 7px 18px rgba(0,0,0,.28);
 transform:translateY(-2px)}
.dzct__btn:focus-visible{outline:2px solid var(--dzct-btn-hover,#0090c6);outline-offset:3px}

/* Tablet: same two columns, but a gentler overlap so the text keeps its room */
@media (max-width:1024px){
 .dzct{min-height:0}
 .dzct__media{flex-basis:calc(var(--dzct-media-w,52%) - 4%);
  max-width:calc(var(--dzct-media-w,52%) - 4%)}
 .dzct--media-right .dzct__media{margin-left:calc(var(--dzct-overlap,12%) * -.45)}
 .dzct--media-left .dzct__media{margin-right:calc(var(--dzct-overlap,12%) * -.45)}
 .dzct__content{padding:calc(var(--dzct-pad,32px) * .8)}
 .dzct .dzct__title{font-size:calc(var(--dzct-title-size,28px) * .85)}
}

/* Phone: stacked, centred, no overlap at all */
@media (max-width:767px){
 .dzct{display:block}
 .dzct__content,.dzct--media-left .dzct__content{width:100%;padding:calc(var(--dzct-pad,32px) * .75);
  text-align:center}
 .dzct__list{display:inline-block;text-align:left}
 .dzct__media,.dzct--media-right .dzct__media,.dzct--media-left .dzct__media{
  order:0;width:100%;max-width:100%;flex-basis:auto;margin:0;pointer-events:auto}
 .dzct__media img{width:100%;height:auto}
 .dzct .dzct__title{font-size:calc(var(--dzct-title-size,28px) * .8)}
}
@media (prefers-reduced-motion:reduce){
 .dzct__btn{transition:none}
 .dzct__btn:hover,.dzct__btn:focus{transform:none}
}

/* ==========================================================================
   Logo Gallery
   ========================================================================== */

.dzlg{position:relative;width:100%;overflow:hidden}
.dzlg--outer{border:var(--dzlg-dw,1px) solid var(--dzlg-divider,#e0e4ea)}
/* Every cell draws its right and bottom line, then the grid is pulled that same
   distance past the container so the trailing lines are clipped away. */
.dzlg__grid{display:grid;grid-template-columns:repeat(var(--dzlg-cols,5),minmax(0,1fr));
 margin-right:calc(var(--dzlg-dw,1px) * -1);margin-bottom:calc(var(--dzlg-dw,1px) * -1)}
.dzlg__item{display:flex;align-items:center;justify-content:center;min-width:0;
 height:var(--dzlg-cell-h,110px);padding:var(--dzlg-pad,18px);box-sizing:border-box;
 background:var(--dzlg-bg,transparent);
 border-right:var(--dzlg-dw,1px) solid var(--dzlg-divider,#e0e4ea);
 border-bottom:var(--dzlg-dw,1px) solid var(--dzlg-divider,#e0e4ea)}
.dzlg__logo{display:flex;align-items:center;justify-content:center;
 width:100%;height:100%;text-decoration:none}
.dzlg__logo img{display:block;width:auto;max-width:100%;height:auto;
 max-height:var(--dzlg-logo-h,54px);object-fit:contain;
 transition:filter .3s ease,opacity .3s ease,transform .3s ease}
.dzlg--tone-gray .dzlg__logo img{filter:grayscale(1)}
.dzlg--tone-hover .dzlg__logo img{filter:grayscale(1);opacity:.72}
.dzlg--tone-hover .dzlg__item:hover img{filter:grayscale(0);opacity:1}
a.dzlg__logo:hover img{transform:scale(1.04)}
a.dzlg__logo:focus-visible{outline:2px solid var(--dzlg-divider,#e0e4ea);outline-offset:-4px}
@media (max-width:1024px){
 .dzlg__grid{grid-template-columns:repeat(var(--dzlg-cols-t,3),minmax(0,1fr))}
}
@media (max-width:600px){
 .dzlg__grid{grid-template-columns:repeat(var(--dzlg-cols-m,2),minmax(0,1fr))}
 .dzlg__item{height:calc(var(--dzlg-cell-h,110px) * .8);padding:calc(var(--dzlg-pad,18px) * .7)}
}
@media (prefers-reduced-motion:reduce){
 .dzlg__logo img{transition:none}
 a.dzlg__logo:hover img{transform:none}
}

/* ==========================================================================
   Modal Button
   ========================================================================== */

.dzmb--align-left{text-align:left}
.dzmb--align-center{text-align:center}
.dzmb--align-right{text-align:right}
.dzmb__btn{display:inline-flex;align-items:center;justify-content:center;
 height:42px;padding:0 26px;box-sizing:border-box;border:0;cursor:pointer;
 border-radius:var(--dzmb-btn-radius,8px);
 font-family:inherit;font-size:14px;font-weight:700;letter-spacing:.06em;
 text-transform:uppercase;line-height:1.3;
 background:var(--dzmb-btn-bg,#00adee);color:var(--dzmb-btn-color,#fff);
 box-shadow:0 4px 12px rgba(0,0,0,.22);
 transition:background-color .25s ease,box-shadow .25s ease,transform .25s ease}
.dzmb__btn > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dzmb--btn-outline .dzmb__btn{background:transparent;box-shadow:none;
 border:2px solid var(--dzmb-btn-bg,#00adee);color:var(--dzmb-btn-bg,#00adee)}
.dzmb--btn-full .dzmb__btn{width:100%}
.dzmb__btn:hover,.dzmb__btn:focus{background:var(--dzmb-btn-hover,#0090c6);
 color:var(--dzmb-btn-color,#fff);border-color:var(--dzmb-btn-hover,#0090c6);
 box-shadow:0 7px 18px rgba(0,0,0,.28);transform:translateY(-2px)}
.dzmb__btn:focus-visible{outline:2px solid var(--dzmb-btn-hover,#0090c6);outline-offset:3px}

/* Text link trigger: the same <button> element, stripped back to inline text so
   it stays a real control for keyboard and screen reader users. */
.dzmb--trigger-text .dzmb__btn{height:auto;padding:0;border:0;box-shadow:none;
 background:none;border-radius:0;
 font-size:var(--dzmb-link-size,15px);font-weight:var(--dzmb-link-weight,600);
 letter-spacing:normal;text-transform:none;line-height:1.5;
 color:var(--dzmb-link,#00adee)}
.dzmb--trigger-text.dzmb--btn-full .dzmb__btn{width:auto}
.dzmb--trigger-text .dzmb__btn:hover,
.dzmb--trigger-text .dzmb__btn:focus{background:none;box-shadow:none;transform:none;
 color:var(--dzmb-link-hover,#0090c6)}
.dzmb--trigger-text.dzmb--underline-always .dzmb__btn{text-decoration:underline;
 text-underline-offset:3px}
.dzmb--trigger-text.dzmb--underline-hover .dzmb__btn:hover,
.dzmb--trigger-text.dzmb--underline-hover .dzmb__btn:focus{text-decoration:underline;
 text-underline-offset:3px}
.dzmb--trigger-text.dzmb--underline-never .dzmb__btn{text-decoration:none}
.dzmb--trigger-text .dzmb__btn:focus-visible{outline:2px solid var(--dzmb-link-hover,#0090c6);
 outline-offset:2px}

/* The dialog is fixed to the viewport, so it escapes any column that clips it */
/* No background here: the tint lives on ::before so its opacity can be set
   independently. A solid colour on this layer would sit on top and hide it. */
.dzmb__modal{position:fixed;inset:0;z-index:99999;display:flex;
 align-items:center;justify-content:center;padding:20px;box-sizing:border-box;
 opacity:0;transition:opacity .25s ease}
.dzmb__modal.is-open{opacity:1}
.dzmb__modal[hidden]{display:none}
.dzmb__modal::before{content:"";position:absolute;inset:0;
 background:var(--dzmb-overlay,#0b1622);opacity:var(--dzmb-overlay-op,.7)}
.dzmb__dialog{position:relative;z-index:1;box-sizing:border-box;
 width:100%;max-width:var(--dzmb-w,620px);max-height:calc(100vh - 40px);
 overflow:auto;-webkit-overflow-scrolling:touch;
 padding:32px;border-radius:10px;text-align:left;
 background:var(--dzmb-bg,#fff);color:var(--dzmb-text,#000);
 box-shadow:0 24px 60px rgba(0,0,0,.35);
 transform:translateY(12px) scale(.98);transition:transform .3s ease}
.dzmb__modal.is-open .dzmb__dialog{transform:none}
.dzmb__close{position:absolute;top:12px;right:12px;z-index:2;
 display:flex;align-items:center;justify-content:center;
 width:34px;height:34px;padding:0;border:0;border-radius:50%;cursor:pointer;
 background:transparent;color:var(--dzmb-title,#000);
 transition:background-color .2s ease}
.dzmb__close svg{width:20px;height:20px;display:block}
.dzmb__close:hover{background:rgba(0,0,0,.07)}
.dzmb__close:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.dzmb .dzmb__title{display:block;margin:0 0 14px;padding-right:34px;font-size:22px;font-weight:700;
 line-height:1.25;color:var(--dzmb-title,#000)}
.dzmb__media{position:relative;margin:0 0 16px}
.dzmb__media img{display:block;width:100%;height:auto;border-radius:8px;
 transition:opacity .3s ease}
.dzmb__media.is-loading{min-height:150px;border-radius:8px;background:rgba(0,0,0,.05)}
.dzmb__media.is-loading img{opacity:0}
.dzmb__spinner{display:none}
.dzmb__media.is-loading .dzmb__spinner{display:block;position:absolute;
 top:50%;left:50%;width:30px;height:30px;margin:-15px 0 0 -15px;
 border:3px solid rgba(0,0,0,.14);border-top-color:var(--dzmb-btn-bg,#00adee);
 border-radius:50%;animation:dzmb-spin .8s linear infinite}
@keyframes dzmb-spin{to{transform:rotate(360deg)}}
.dzmb__text{font-size:15px;line-height:1.6}
.dzmb__text > :first-child{margin-top:0}
.dzmb__text > :last-child{margin-bottom:0}
.dzmb__text a{color:var(--dzmb-btn-bg,#00adee)}
.dzmb--image-bottom .dzmb__media{margin:16px 0 0}
@media (min-width:600px){
 .dzmb--image-side .dzmb__body{display:flex;gap:20px;align-items:flex-start}
 .dzmb--image-side .dzmb__media{flex:0 0 42%;max-width:42%;margin:0}
 .dzmb--image-side .dzmb__text{flex:1 1 auto;min-width:0}
}
@media (max-width:600px){
 .dzmb__dialog{padding:24px 18px}
 .dzmb .dzmb__title{font-size:19px}
}
/* Stops the page behind the popup from scrolling */
html.dzmb-open,html.dzmb-open body{overflow:hidden}
@media (prefers-reduced-motion:reduce){
 .dzmb__btn,.dzmb__modal,.dzmb__dialog{transition:none}
 .dzmb__btn:hover,.dzmb__btn:focus{transform:none}
 .dzmb__dialog{transform:none}
 .dzmb__media.is-loading .dzmb__spinner{animation-duration:2.4s}
}

/* ==========================================================================
   Testimonial Carousel
   ========================================================================== */

.dzts{position:relative;width:100%}
/* The gradient lives on the frame; the inner box is inset by the border width.
   A real CSS border cannot take a gradient, and background-clip tricks break
   once the inner box needs its own background colour. */
.dzts__frame{position:relative;padding:var(--dzts-bw,2px);
 border-radius:var(--dzts-radius,24px);background:var(--dzts-frame,#5ec9a0)}
.dzts--border-none .dzts__frame{padding:0;background:none}
.dzts__inner{position:relative;overflow:hidden;
 border-radius:calc(var(--dzts-radius,24px) - var(--dzts-bw,2px));
 background:var(--dzts-bg,transparent)}
.dzts__viewport{position:relative}
/* Every slide shares one grid cell, so the frame is as tall as the tallest one
   and nothing jumps as the carousel moves. */
.dzts__track{display:grid}
.dzts__slide{grid-area:1/1;display:flex;align-items:center;gap:var(--dzts-pad,28px);
 padding:var(--dzts-pad,28px);box-sizing:border-box;
 opacity:0;visibility:hidden;transform:translateX(14px);
 transition:opacity .45s ease,transform .45s ease,visibility 0s linear .45s}
.dzts__slide.is-active{opacity:1;visibility:visible;transform:none;
 transition:opacity .45s ease,transform .45s ease,visibility 0s}
.dzts--media-left .dzts__slide{flex-direction:row-reverse}
.dzts__body{flex:1 1 auto;min-width:0}
/* The quote sets the block direction; the heading and author each override it */
.dzts--text-left .dzts__body{text-align:left}
.dzts--text-center .dzts__body{text-align:center}
.dzts--text-right .dzts__body{text-align:right}
.dzts .dzts__heading{display:block;margin:0 0 14px;font-size:var(--dzts-heading-size,20px);font-weight:700;
 line-height:1.25;color:var(--dzts-heading,#000)}
.dzts--heading-left .dzts .dzts__heading{text-align:left}
.dzts--heading-center .dzts .dzts__heading{text-align:center}
.dzts--heading-right .dzts .dzts__heading{text-align:right}
.dzts__mark{display:flex;margin:0 0 10px;line-height:0;color:var(--dzts-mark,#1b3a6b)}
.dzts--text-left .dzts__mark{justify-content:flex-start}
.dzts--text-center .dzts__mark{justify-content:center}
.dzts--text-right .dzts__mark{justify-content:flex-end}
.dzts__mark svg{width:var(--dzts-mark-size,34px);height:auto;display:block}
.dzts__mark-img{width:var(--dzts-mark-size,34px);height:auto;display:block}
.dzts__quote{margin:0 0 16px;padding:0;border:0;
 font-size:var(--dzts-quote-size,17px);line-height:1.5;color:var(--dzts-quote,#000)}
.dzts--italic .dzts__quote{font-style:italic}
.dzts__author{display:block;font-size:15px;font-weight:700;font-style:normal;
 color:var(--dzts-author,#000)}
.dzts--author-left .dzts__author{text-align:left}
.dzts--author-center .dzts__author{text-align:center}
.dzts--author-right .dzts__author{text-align:right}
.dzts__media{flex:0 0 var(--dzts-media-w,52%);max-width:var(--dzts-media-w,52%);
 min-width:0;border-radius:8px;overflow:hidden}
.dzts__media img{display:block;width:100%;height:auto}
/* oEmbed returns a fixed-size iframe, so it is forced back to a fluid 16:9 box */
.dzts__media iframe,.dzts__media video,.dzts__media embed,.dzts__media object{
 display:block;width:100%;height:100%;border:0}
.dzts__media > iframe,.dzts__media .wp-video,.dzts__media .fluid-width-video-wrapper{
 aspect-ratio:16/9;height:auto}
.dzts__nav{position:absolute;top:50%;z-index:3;display:flex;align-items:center;
 justify-content:center;width:36px;height:36px;padding:0;margin-top:-18px;
 border:0;border-radius:50%;cursor:pointer;
 background:rgba(255,255,255,.92);color:var(--dzts-arrow,#000);
 box-shadow:0 2px 10px rgba(0,0,0,.18);transition:transform .2s ease,opacity .2s ease}
.dzts__nav svg{width:18px;height:18px;display:block}
.dzts__nav--prev{left:10px}
.dzts__nav--next{right:10px}
.dzts__nav:hover{transform:scale(1.08)}
.dzts__nav[disabled]{opacity:.35;cursor:default;transform:none}
.dzts__nav:focus-visible{outline:2px solid var(--dzts-dot-on,#00adee);outline-offset:2px}
.dzts__dots{display:flex;justify-content:center;gap:8px;margin-top:14px}
.dzts__dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer;
 background:var(--dzts-dot-off,#c9d3e0);transition:background-color .2s ease,transform .2s ease}
.dzts__dot.is-active{background:var(--dzts-dot-on,#00adee);transform:scale(1.25)}
.dzts__dot:focus-visible{outline:2px solid var(--dzts-dot-on,#00adee);outline-offset:2px}
@media (max-width:767px){
 .dzts__slide,.dzts--media-left .dzts__slide{flex-direction:column;
  gap:calc(var(--dzts-pad,28px) * .6);padding:calc(var(--dzts-pad,28px) * .8)}
 .dzts__media{flex:0 0 auto;max-width:100%;width:100%;order:-1}
 .dzts__nav{width:30px;height:30px;margin-top:-15px}
 .dzts__nav--prev{left:4px}
 .dzts__nav--next{right:4px}
}
@media (prefers-reduced-motion:reduce){
 .dzts__slide,.dzts__nav,.dzts__dot{transition:none}
 .dzts__slide{transform:none}
}
