.ff-container{width:var(--ff-width,100%);max-width:var(--ff-max-width,1240px);min-width:0;min-height:var(--ff-min-height,0);margin-inline:auto;box-sizing:border-box;gap:var(--ff-gap,24px);justify-content:var(--ff-justify,flex-start);align-items:var(--ff-align,stretch);overflow:var(--ff-overflow,visible);background-position:center;background-repeat:no-repeat}
.ff-container.alignfull{max-width:none}.ff-container--flex{display:flex;flex-direction:var(--ff-dir,column);flex-wrap:var(--ff-wrap,nowrap)}.ff-container--grid{display:grid;grid-template-columns:repeat(var(--ff-cols,3),minmax(0,1fr))}
.ff-container.ff-item--width{flex:0 1 auto}.ff-container.ff-item--grow{flex:1 1 0%;width:auto;max-width:none}.ff-container.ff-item--fit{flex:0 0 auto;width:auto;max-width:none}.ff-container.ff-item--fixed{flex:0 0 var(--ff-width,auto);width:var(--ff-width,auto)}.ff-container{order:var(--ff-item-order,0);align-self:var(--ff-self-align,auto)}
/* Child item mode is a separate editor control and therefore wins over the
 * generic width rule when Grow/Fit/Fixed is selected. */
.ff-container.ff-item--grow{flex:1 1 0%!important;width:auto!important;max-width:none!important}
.ff-container.ff-item--fit{flex:0 0 auto!important;width:auto!important;max-width:none!important}
.ff-container.ff-item--fixed{flex:0 0 var(--ff-width,auto)!important;width:var(--ff-width,auto)!important}
.ff-container.ff-item--grow:not(.ff-override-margin),
.ff-container.ff-item--fit:not(.ff-override-margin),
.ff-container.ff-item--fixed:not(.ff-override-margin){margin-left:0;margin-right:0}

@media(max-width:1024px){.ff-container{width:var(--ff-width-tablet,var(--ff-width,100%));max-width:var(--ff-max-width-tablet,var(--ff-max-width,1240px));min-height:var(--ff-min-height-tablet,var(--ff-min-height,0));gap:var(--ff-gap-tablet,var(--ff-gap,20px));justify-content:var(--ff-justify-tablet,var(--ff-justify,flex-start));align-items:var(--ff-align-tablet,var(--ff-align,stretch));order:var(--ff-item-order-tablet,var(--ff-item-order,0));align-self:var(--ff-self-align-tablet,var(--ff-self-align,auto))}.ff-container--flex{flex-direction:var(--ff-dir-tablet,var(--ff-dir,column));flex-wrap:var(--ff-wrap-tablet,var(--ff-wrap,nowrap))}.ff-container--grid{grid-template-columns:repeat(var(--ff-cols-tablet,var(--ff-cols,2)),minmax(0,1fr))}.ff-container.ff-item-tablet--width{flex:0 1 auto}.ff-container.ff-item-tablet--grow{flex:1 1 0%;width:auto;max-width:none}.ff-container.ff-item-tablet--fit{flex:0 0 auto;width:auto;max-width:none}.ff-container.ff-item-tablet--fixed{flex:0 0 var(--ff-width-tablet,var(--ff-width,auto));width:var(--ff-width-tablet,var(--ff-width,auto))}}
@media(max-width:767px){.ff-container{width:var(--ff-width-mobile,var(--ff-width-tablet,var(--ff-width,100%)));max-width:var(--ff-max-width-mobile,var(--ff-max-width-tablet,var(--ff-max-width,1240px)));min-height:var(--ff-min-height-mobile,var(--ff-min-height-tablet,var(--ff-min-height,0)));gap:var(--ff-gap-mobile,var(--ff-gap-tablet,var(--ff-gap,16px)));justify-content:var(--ff-justify-mobile,var(--ff-justify-tablet,var(--ff-justify,flex-start)));align-items:var(--ff-align-mobile,var(--ff-align-tablet,var(--ff-align,stretch)));order:var(--ff-item-order-mobile,var(--ff-item-order-tablet,var(--ff-item-order,0)));align-self:var(--ff-self-align-mobile,var(--ff-self-align-tablet,var(--ff-self-align,auto)))}.ff-container--flex{flex-direction:var(--ff-dir-mobile,var(--ff-dir-tablet,var(--ff-dir,column)));flex-wrap:var(--ff-wrap-mobile,var(--ff-wrap-tablet,var(--ff-wrap,nowrap)))}.ff-container--grid{grid-template-columns:repeat(var(--ff-cols-mobile,var(--ff-cols-tablet,var(--ff-cols,1))),minmax(0,1fr))}.ff-container.ff-item-mobile--width{flex:0 1 auto}.ff-container.ff-item-mobile--grow{flex:1 1 0%;width:auto;max-width:none}.ff-container.ff-item-mobile--fit{flex:0 0 auto;width:auto;max-width:none}.ff-container.ff-item-mobile--fixed{flex:0 0 var(--ff-width-mobile,var(--ff-width-tablet,var(--ff-width,auto)));width:var(--ff-width-mobile,var(--ff-width-tablet,var(--ff-width,auto)))}}
.ff-icon,.ff-icon-link{display:inline-flex;align-items:center;justify-content:center;line-height:0}.ff-icon{box-sizing:content-box;width:var(--ff-icon-size,32px);height:var(--ff-icon-size,32px);color:var(--ff-icon-color,#225d83);background:var(--ff-icon-background,transparent);padding:var(--ff-icon-padding,0);border-radius:var(--ff-icon-radius,0)}.ff-icon-link{text-decoration:none}.ff-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1024px){.ff-icon{width:var(--ff-icon-size-tablet,var(--ff-icon-size,32px));height:var(--ff-icon-size-tablet,var(--ff-icon-size,32px));color:var(--ff-icon-color-tablet,var(--ff-icon-color,#225d83));background:var(--ff-icon-background-tablet,var(--ff-icon-background,transparent));padding:var(--ff-icon-padding-tablet,var(--ff-icon-padding,0));border-radius:var(--ff-icon-radius-tablet,var(--ff-icon-radius,0))}}
@media(max-width:767px){.ff-icon{width:var(--ff-icon-size-mobile,var(--ff-icon-size-tablet,var(--ff-icon-size,32px)));height:var(--ff-icon-size-mobile,var(--ff-icon-size-tablet,var(--ff-icon-size,32px)));color:var(--ff-icon-color-mobile,var(--ff-icon-color-tablet,var(--ff-icon-color,#225d83)));background:var(--ff-icon-background-mobile,var(--ff-icon-background-tablet,var(--ff-icon-background,transparent)));padding:var(--ff-icon-padding-mobile,var(--ff-icon-padding-tablet,var(--ff-icon-padding,0)));border-radius:var(--ff-icon-radius-mobile,var(--ff-icon-radius-tablet,var(--ff-icon-radius,0)))}}
.ff-gallery{position:relative;--ff-gallery-cols:4;--ff-gallery-cols-tablet:2;--ff-gallery-cols-mobile:1;--ff-gallery-gap:16px;--ff-gallery-radius:8px;--ff-gallery-aspect:4/3;--ff-gallery-fit:cover}.ff-gallery__track{display:grid;grid-template-columns:repeat(var(--ff-gallery-cols),minmax(0,1fr));gap:var(--ff-gallery-gap)}.ff-gallery__item{margin:0;overflow:hidden;border-radius:var(--ff-gallery-radius);background:#f3f6f8}.ff-gallery__image{display:block;width:100%;aspect-ratio:var(--ff-gallery-aspect);object-fit:var(--ff-gallery-fit)}.ff-gallery figcaption{padding:.6rem .25rem;font-size:.875rem;color:inherit}.ff-lightbox-link{color:inherit;text-decoration:none}.ff-gallery--masonry .ff-gallery__track{display:block;columns:var(--ff-gallery-cols);column-gap:var(--ff-gallery-gap)}.ff-gallery--masonry .ff-gallery__item{break-inside:avoid;margin:0 0 var(--ff-gallery-gap)}.ff-gallery--masonry .ff-gallery__image{aspect-ratio:auto}.ff-gallery--carousel{overflow:hidden}.ff-gallery--carousel .ff-gallery__track{display:flex;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:var(--ff-gallery-gap);overscroll-behavior-inline:contain}.ff-gallery--carousel .ff-gallery__track::-webkit-scrollbar{display:none}.ff-gallery--carousel .ff-lightbox-link,.ff-gallery--carousel .ff-gallery__item{flex:0 0 calc((100% - (var(--ff-gallery-cols) - 1)*var(--ff-gallery-gap))/var(--ff-gallery-cols));scroll-snap-align:start}.ff-carousel__prev,.ff-carousel__next{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:1px solid rgba(0,0,0,.08);border-radius:999px;background:#fff;color:#142533;box-shadow:0 8px 24px rgba(15,35,50,.14);cursor:pointer;z-index:3;font-size:26px;line-height:1}.ff-carousel__prev{left:12px}.ff-carousel__next{right:12px}.ff-carousel__dots{display:flex;justify-content:center;gap:7px;margin-top:14px}.ff-carousel__dot{width:8px;height:8px;border:0;border-radius:999px;background:#bac7cf;padding:0;cursor:pointer}.ff-carousel__dot.is-active{background:#225d83;transform:scale(1.2)}
.ff-lightbox{position:fixed;inset:0;background:rgba(5,12,18,.94);z-index:999999;display:flex;align-items:center;justify-content:center;padding:48px 72px;color:#fff}.ff-lightbox__stage{position:relative;display:flex;align-items:center;justify-content:center;max-width:100%;max-height:100%;width:100%;height:100%}.ff-lightbox__image{max-width:min(92vw,1800px);max-height:82vh;object-fit:contain;transition:transform .2s ease;transform-origin:center}.ff-lightbox.is-zoomed .ff-lightbox__image{transform:scale(1.6);cursor:zoom-out}.ff-lightbox__caption{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);max-width:70vw;text-align:center;font-size:.9rem;color:#e6edf2}.ff-lightbox button{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:24px;min-width:42px;height:42px;border-radius:999px;cursor:pointer;z-index:4}.ff-lightbox button:hover{background:rgba(255,255,255,.22)}.ff-lightbox__close{top:16px;right:16px}.ff-lightbox__zoom{top:16px;right:66px}.ff-lightbox__fullscreen{top:16px;right:116px}.ff-lightbox__prev{left:18px;top:50%}.ff-lightbox__next{right:18px;top:50%}.ff-lightbox__thumbs{position:absolute;left:50%;bottom:42px;transform:translateX(-50%);display:flex;gap:8px;max-width:80vw;overflow:auto;padding:6px;background:rgba(0,0,0,.25);border-radius:8px}.ff-lightbox__thumb{position:static!important;min-width:54px!important;width:54px!important;height:42px!important;border-radius:5px!important;padding:0!important;overflow:hidden;opacity:.65}.ff-lightbox__thumb.is-active{opacity:1;outline:2px solid #fff}.ff-lightbox__thumb img{width:100%;height:100%;object-fit:cover}
.ff-motion{opacity:0;will-change:transform,opacity,filter;transition-property:opacity,transform,filter;transition-duration:var(--ff-motion-duration,600ms);transition-delay:var(--ff-motion-delay,0ms);transition-timing-function:var(--ff-motion-easing,ease-out)}.ff-motion.is-visible{opacity:1;transform:none!important;filter:none!important}.ff-motion--fade-in{transform:none}.ff-motion--fade-up{transform:translateY(28px)}.ff-motion--fade-down{transform:translateY(-28px)}.ff-motion--fade-left{transform:translateX(28px)}.ff-motion--fade-right{transform:translateX(-28px)}.ff-motion--slide-up{transform:translateY(64px)}.ff-motion--slide-down{transform:translateY(-64px)}.ff-motion--slide-left{transform:translateX(64px)}.ff-motion--slide-right{transform:translateX(-64px)}.ff-motion--zoom-in{transform:scale(.88)}.ff-motion--zoom-out{transform:scale(1.12)}.ff-motion--flip-x{transform:perspective(800px) rotateX(34deg)}.ff-motion--flip-y{transform:perspective(800px) rotateY(34deg)}.ff-motion--blur-in{filter:blur(12px);transform:scale(.985)}
[class*="ff-hover--"]{transition:transform .25s ease,box-shadow .25s ease,filter .25s ease,opacity .25s ease}.ff-hover--lift:hover{transform:translateY(-6px)}.ff-hover--scale:hover{transform:scale(1.035)}.ff-hover--scale-down:hover{transform:scale(.975)}.ff-hover--zoom:hover{transform:scale(1.06)}.ff-hover--shadow:hover{box-shadow:0 16px 38px rgba(17,36,51,.16)}.ff-hover--tilt:hover{transform:rotate(-1deg) translateY(-3px)}.ff-hover--soften:hover{filter:brightness(.96)}.ff-hover--glow:hover{box-shadow:0 0 0 3px rgba(34,93,131,.12),0 14px 36px rgba(34,93,131,.18)}
.ff-btn-custom{transition:background-color .22s ease,color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;position:relative;overflow:hidden}.ff-btn-custom.ff-btn-custom.ff-btn-custom.ff-btn-effect--lift:hover{transform:translateY(-3px)}.ff-btn-effect--scale:hover{transform:scale(1.035)}.ff-btn-effect--shadow:hover{box-shadow:0 10px 24px rgba(20,43,58,.18)}.ff-btn-effect--arrow:hover{transform:translateX(2px)}.ff-btn-effect--sweep:before{content:"";position:absolute;inset:0;transform:translateX(-105%);background:rgba(255,255,255,.12);transition:transform .3s ease}.ff-btn-effect--sweep:hover:before{transform:translateX(0)}
.ff-nav-hover--color .wp-block-navigation-item__content{transition:color .2s ease}.ff-nav-hover--underline .wp-block-navigation-item__content,.ff-nav-hover--underline-left .wp-block-navigation-item__content,.ff-nav-hover--underline-center .wp-block-navigation-item__content{position:relative}.ff-nav-hover--underline .wp-block-navigation-item__content:after,.ff-nav-hover--underline-left .wp-block-navigation-item__content:after,.ff-nav-hover--underline-center .wp-block-navigation-item__content:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:currentColor;transform:scaleX(0);transition:transform .2s ease}.ff-nav-hover--underline .wp-block-navigation-item__content:hover:after{transform:scaleX(1)}.ff-nav-hover--underline-left .wp-block-navigation-item__content:after{transform-origin:left}.ff-nav-hover--underline-left .wp-block-navigation-item__content:hover:after{transform:scaleX(1)}.ff-nav-hover--underline-center .wp-block-navigation-item__content:after{transform-origin:center}.ff-nav-hover--underline-center .wp-block-navigation-item__content:hover:after{transform:scaleX(1)}.ff-nav-hover--background .wp-block-navigation-item__content,.ff-nav-hover--pill .wp-block-navigation-item__content{transition:background .2s ease,color .2s ease}.ff-nav-hover--background .wp-block-navigation-item__content:hover{background:rgba(34,93,131,.08)}.ff-nav-hover--pill .wp-block-navigation-item__content{padding:.45rem .7rem;border-radius:999px}.ff-nav-hover--pill .wp-block-navigation-item__content:hover{background:rgba(34,93,131,.09)}.ff-nav-dropdown--fade .wp-block-navigation__submenu-container,.ff-nav-dropdown--slide .wp-block-navigation__submenu-container,.ff-nav-dropdown--fade-slide .wp-block-navigation__submenu-container{transition:opacity .18s ease,transform .18s ease}.ff-nav-dropdown--fade .wp-block-navigation__submenu-container{opacity:0}.ff-nav-dropdown--fade .has-child:hover>.wp-block-navigation__submenu-container{opacity:1}.ff-nav-dropdown--slide .wp-block-navigation__submenu-container{transform:translateY(-8px)}.ff-nav-dropdown--slide .has-child:hover>.wp-block-navigation__submenu-container{transform:none}.ff-nav-dropdown--fade-slide .wp-block-navigation__submenu-container{opacity:0;transform:translateY(-8px)}.ff-nav-dropdown--fade-slide .has-child:hover>.wp-block-navigation__submenu-container{opacity:1;transform:none}
@media(max-width:1024px){.ff-container{width:var(--ff-width-tablet,var(--ff-width,100%));max-width:var(--ff-max-width-tablet,var(--ff-max-width,1240px));min-height:var(--ff-min-height-tablet,var(--ff-min-height,0));gap:var(--ff-gap-tablet,20px)}.ff-container--flex{flex-direction:var(--ff-dir-tablet,column)}.ff-container--grid{grid-template-columns:repeat(var(--ff-cols-tablet,2),minmax(0,1fr))}.ff-gallery__track{grid-template-columns:repeat(var(--ff-gallery-cols-tablet),minmax(0,1fr))}.ff-gallery--masonry .ff-gallery__track{columns:var(--ff-gallery-cols-tablet)}.ff-gallery--carousel .ff-lightbox-link,.ff-gallery--carousel .ff-gallery__item{flex-basis:calc((100% - (var(--ff-gallery-cols-tablet) - 1)*var(--ff-gallery-gap))/var(--ff-gallery-cols-tablet))}.ff-motion-off-tablet.ff-motion{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}}
@media(max-width:767px){.ff-container{width:var(--ff-width-mobile,var(--ff-width-tablet,var(--ff-width,100%)));max-width:var(--ff-max-width-mobile,var(--ff-max-width-tablet,var(--ff-max-width,1240px)));min-height:var(--ff-min-height-mobile,var(--ff-min-height-tablet,var(--ff-min-height,0)));gap:var(--ff-gap-mobile,16px)}.ff-container--flex{flex-direction:var(--ff-dir-mobile,column)}.ff-container--grid{grid-template-columns:repeat(var(--ff-cols-mobile,1),minmax(0,1fr))}.ff-gallery__track{grid-template-columns:repeat(var(--ff-gallery-cols-mobile),minmax(0,1fr))}.ff-gallery--masonry .ff-gallery__track{columns:var(--ff-gallery-cols-mobile)}.ff-gallery--carousel .ff-lightbox-link,.ff-gallery--carousel .ff-gallery__item{flex-basis:calc((100% - (var(--ff-gallery-cols-mobile) - 1)*var(--ff-gallery-gap))/var(--ff-gallery-cols-mobile))}.ff-motion-off-mobile.ff-motion{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.ff-lightbox{padding:52px 12px}.ff-lightbox__prev{left:8px}.ff-lightbox__next{right:8px}.ff-lightbox__caption{max-width:90vw}.ff-lightbox__thumbs{max-width:94vw}}
@media(max-width:1024px){.ff-gallery__track{gap:var(--ff-gallery-gap-tablet,var(--ff-gallery-gap,16px))}.ff-gallery__item{border-radius:var(--ff-gallery-radius-tablet,var(--ff-gallery-radius,8px))}.ff-gallery__image{aspect-ratio:var(--ff-gallery-aspect-tablet,var(--ff-gallery-aspect,4/3));object-fit:var(--ff-gallery-fit-tablet,var(--ff-gallery-fit,cover))}.ff-gallery--masonry .ff-gallery__track{column-gap:var(--ff-gallery-gap-tablet,var(--ff-gallery-gap,16px))}.ff-gallery--masonry .ff-gallery__item{margin-bottom:var(--ff-gallery-gap-tablet,var(--ff-gallery-gap,16px))}.ff-gallery--carousel .ff-lightbox-link,.ff-gallery--carousel .ff-gallery__item{flex-basis:calc((100% - (var(--ff-gallery-cols-tablet) - 1)*var(--ff-gallery-gap-tablet,var(--ff-gallery-gap,16px)))/var(--ff-gallery-cols-tablet))}}
@media(max-width:767px){.ff-gallery__track{gap:var(--ff-gallery-gap-mobile,var(--ff-gallery-gap-tablet,var(--ff-gallery-gap,16px)))}.ff-gallery__item{border-radius:var(--ff-gallery-radius-mobile,var(--ff-gallery-radius-tablet,var(--ff-gallery-radius,8px)))}.ff-gallery__image{aspect-ratio:var(--ff-gallery-aspect-mobile,var(--ff-gallery-aspect-tablet,var(--ff-gallery-aspect,4/3)));object-fit:var(--ff-gallery-fit-mobile,var(--ff-gallery-fit-tablet,var(--ff-gallery-fit,cover)))}.ff-gallery--masonry .ff-gallery__track{column-gap:var(--ff-gallery-gap-mobile,var(--ff-gallery-gap-tablet,var(--ff-gallery-gap,16px)))}.ff-gallery--masonry .ff-gallery__item{margin-bottom:var(--ff-gallery-gap-mobile,var(--ff-gallery-gap-tablet,var(--ff-gallery-gap,16px)))}.ff-gallery--carousel .ff-lightbox-link,.ff-gallery--carousel .ff-gallery__item{flex-basis:calc((100% - (var(--ff-gallery-cols-mobile) - 1)*var(--ff-gallery-gap-mobile,var(--ff-gallery-gap-tablet,var(--ff-gallery-gap,16px))))/var(--ff-gallery-cols-mobile))}}
@media(min-width:1025px){.ff-motion-off-desktop.ff-motion{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}}
@media(prefers-reduced-motion:reduce){.ff-motion{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}[class*="ff-hover--"],.ff-btn-custom,.ff-nav-hover--underline .wp-block-navigation-item__content:after,.ff-nav-hover--underline-left .wp-block-navigation-item__content:after,.ff-nav-hover--underline-center .wp-block-navigation-item__content:after{transition:none!important}.ff-gallery--carousel .ff-gallery__track{scroll-behavior:auto}}
.ff-image-frame__link{display:block;color:inherit;text-decoration:none}.ff-image-frame{margin:0;overflow:hidden;border-radius:var(--ff-image-radius,0)}.ff-image-frame__img{display:block;width:100%;height:auto;aspect-ratio:var(--ff-image-aspect,auto);object-fit:var(--ff-image-fit,cover);object-position:var(--ff-image-position,center center);border-radius:inherit}.ff-image-frame figcaption{padding:.55rem .1rem;font-size:.875rem;color:inherit}.ff-image-frame--empty{min-height:120px;display:grid;place-items:center;border:1px dashed #c9d8e1;color:#66798b}
@media(max-width:1024px){.ff-image-frame{border-radius:var(--ff-image-radius-tablet,var(--ff-image-radius,0))}.ff-image-frame__img{aspect-ratio:var(--ff-image-aspect-tablet,var(--ff-image-aspect,auto));object-fit:var(--ff-image-fit-tablet,var(--ff-image-fit,cover));object-position:var(--ff-image-position-tablet,var(--ff-image-position,center center))}}
@media(max-width:767px){.ff-image-frame{border-radius:var(--ff-image-radius-mobile,var(--ff-image-radius-tablet,var(--ff-image-radius,0)))}.ff-image-frame__img{aspect-ratio:var(--ff-image-aspect-mobile,var(--ff-image-aspect-tablet,var(--ff-image-aspect,auto)));object-fit:var(--ff-image-fit-mobile,var(--ff-image-fit-tablet,var(--ff-image-fit,cover)));object-position:var(--ff-image-position-mobile,var(--ff-image-position-tablet,var(--ff-image-position,center center)))}}

/* FlexFrame Classic Menu block */
.ff-classic-menu{position:relative;--ff-menu-direction:row;--ff-menu-align-items:center;--ff-menu-gap:24px;--ff-menu-justify:flex-start}
.ff-classic-menu__list,.ff-classic-menu__list ul{list-style:none;margin:0;padding:0}
.ff-classic-menu__list{display:flex;flex-direction:var(--ff-menu-direction,row);align-items:var(--ff-menu-align-items,center);justify-content:var(--ff-menu-justify);gap:var(--ff-menu-gap)}
.ff-classic-menu--vertical>.ff-classic-menu__list{flex-direction:var(--ff-menu-direction,column);align-items:var(--ff-menu-align-items,stretch)}
@media(max-width:1024px){.ff-classic-menu__list,.ff-classic-menu--vertical>.ff-classic-menu__list{flex-direction:var(--ff-menu-direction-tablet,var(--ff-menu-direction,row));align-items:var(--ff-menu-align-items-tablet,var(--ff-menu-align-items,center));justify-content:var(--ff-menu-justify-tablet,var(--ff-menu-justify,flex-start));gap:var(--ff-menu-gap-tablet,var(--ff-menu-gap,24px))}}
@media(max-width:767px){.ff-classic-menu__list,.ff-classic-menu--vertical>.ff-classic-menu__list{flex-direction:var(--ff-menu-direction-mobile,var(--ff-menu-direction-tablet,var(--ff-menu-direction,row)));align-items:var(--ff-menu-align-items-mobile,var(--ff-menu-align-items-tablet,var(--ff-menu-align-items,center)));justify-content:var(--ff-menu-justify-mobile,var(--ff-menu-justify-tablet,var(--ff-menu-justify,flex-start)));gap:var(--ff-menu-gap-mobile,var(--ff-menu-gap-tablet,var(--ff-menu-gap,24px)))}}
.ff-classic-menu__list>li{position:relative}
.ff-classic-menu__list a{display:flex;align-items:center;text-decoration:none;color:inherit;position:relative;transition:color .2s ease,background-color .2s ease,transform .2s ease}
.ff-classic-menu__list .sub-menu{position:absolute;z-index:40;top:calc(100% + 10px);left:0;min-width:220px;padding:10px;background:#fff;border:1px solid rgba(18,36,51,.10);border-radius:10px;box-shadow:0 14px 40px rgba(18,36,51,.12);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.ff-classic-menu__list .sub-menu .sub-menu{top:-10px;left:calc(100% + 8px)}
.ff-classic-menu__list li:hover>.sub-menu,.ff-classic-menu__list li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.ff-menu-dropdown--fade .sub-menu{transform:none}.ff-menu-dropdown--none .sub-menu{transition:none}
.ff-menu-hover--underline-left>.ff-classic-menu__list>li>a:after,.ff-menu-hover--underline-center>.ff-classic-menu__list>li>a:after{content:"";position:absolute;height:2px;bottom:-6px;background:currentColor;transform:scaleX(0);transition:transform .2s ease}
.ff-menu-hover--underline-left>.ff-classic-menu__list>li>a:after{left:0;right:0;transform-origin:left}.ff-menu-hover--underline-center>.ff-classic-menu__list>li>a:after{left:0;right:0;transform-origin:center}
.ff-menu-hover--underline-left>.ff-classic-menu__list>li>a:hover:after,.ff-menu-hover--underline-left>.ff-classic-menu__list>li.current-menu-item>a:after,.ff-menu-hover--underline-center>.ff-classic-menu__list>li>a:hover:after,.ff-menu-hover--underline-center>.ff-classic-menu__list>li.current-menu-item>a:after{transform:scaleX(1)}
.ff-menu-hover--background>.ff-classic-menu__list>li>a:hover{background:color-mix(in srgb,currentColor 9%,transparent);border-radius:6px}
.ff-classic-menu__toggle{display:none;align-items:center;gap:8px;border:0;background:transparent;color:inherit;font:inherit;padding:8px;cursor:pointer}
.ff-classic-menu__toggle-icon{width:20px;height:14px;display:inline-block;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}.ff-classic-menu__toggle-icon:after{content:"";position:absolute;left:0;right:0;top:5px;border-top:2px solid currentColor}
.ff-classic-menu.is-mobile .ff-classic-menu__toggle{display:flex}.ff-classic-menu.is-mobile>.ff-classic-menu__list{display:none;position:absolute;z-index:60;right:0;top:100%;width:min(var(--ff-mobile-panel-width,320px),calc(100vw - 32px));min-width:0;padding:var(--ff-mobile-panel-padding,14px);background:var(--ff-mobile-panel-background,#fff);color:var(--ff-mobile-panel-text,inherit);border:1px solid rgba(18,36,51,.10);border-radius:var(--ff-mobile-panel-radius,10px);box-shadow:0 14px 40px rgba(18,36,51,.14);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--ff-mobile-menu-gap,4px)}
.ff-classic-menu.is-mobile.is-open>.ff-classic-menu__list{display:flex}.ff-classic-menu.is-mobile .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:5px 0 5px 16px;min-width:0;background:transparent}.ff-classic-menu.is-mobile .ff-classic-menu__list a{padding:8px 10px}
.ff-classic-menu__mobile-cta{display:none!important}.ff-classic-menu.is-mobile .ff-classic-menu__mobile-cta{display:block!important;margin-top:8px;padding-top:10px;border-top:1px solid rgba(18,36,51,.10)}.ff-classic-menu__mobile-cta-link{display:block!important;text-align:center!important;padding:11px 14px!important;border:1px solid var(--ff-mobile-cta-background,#225d83)!important;border-radius:var(--ff-mobile-cta-radius,7px)!important;background:var(--ff-mobile-cta-background,#225d83)!important;color:var(--ff-mobile-cta-text,#fff)!important;font-weight:700!important;text-decoration:none!important}.ff-classic-menu__mobile-cta-link:hover,.ff-classic-menu__mobile-cta-link:focus{background:var(--ff-mobile-cta-hover-background,#163f5b)!important;border-color:var(--ff-mobile-cta-hover-background,#163f5b)!important;color:var(--ff-mobile-cta-text,#fff)!important}
.ff-social-links,.ff-social-links-editor{display:flex;align-items:center;justify-content:var(--ff-social-justify,flex-start);gap:var(--ff-social-gap,9px);flex-wrap:wrap}.ff-social-links__item{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none}.ff-social-links__icon{display:inline-flex;align-items:center;justify-content:center;width:var(--ff-social-size,18px);height:var(--ff-social-size,18px);line-height:0}.ff-social-links__icon svg{display:block;width:100%;height:100%}.ff-social-links__label{font-size:.82em;line-height:1.2}
@media(max-width:1024px){.ff-social-links,.ff-social-links-editor{justify-content:var(--ff-social-justify-tablet,var(--ff-social-justify,flex-start));gap:var(--ff-social-gap-tablet,var(--ff-social-gap,9px))}.ff-social-links__icon{width:var(--ff-social-size-tablet,var(--ff-social-size,18px));height:var(--ff-social-size-tablet,var(--ff-social-size,18px))}}
@media(max-width:767px){.ff-social-links,.ff-social-links-editor{justify-content:var(--ff-social-justify-mobile,var(--ff-social-justify-tablet,var(--ff-social-justify,flex-start)));gap:var(--ff-social-gap-mobile,var(--ff-social-gap-tablet,var(--ff-social-gap,9px)))}.ff-social-links__icon{width:var(--ff-social-size-mobile,var(--ff-social-size-tablet,var(--ff-social-size,18px)));height:var(--ff-social-size-mobile,var(--ff-social-size-tablet,var(--ff-social-size,18px)))}}
/* Chip shape. The tint is mixed from the text colour the block inherits, so a
   footer on a pale ground and a header on a dark one both get a chip that
   belongs to their own surface without either being told what colour to use.
   The flat rgba before it is what a browser without color-mix() falls back to. */
.ff-social-links--chip .ff-social-links__item{width:var(--ff-social-chip,37px);height:var(--ff-social-chip,37px);justify-content:center;flex:0 0 auto;background:rgba(127,127,127,.12);background:color-mix(in srgb,currentColor 10%,transparent);transition:background-color .18s ease,color .18s ease,transform .18s ease}
.ff-social-links--circle .ff-social-links__item{border-radius:50%}
.ff-social-links--rounded .ff-social-links__item{border-radius:9px}
.ff-social-links--chip .ff-social-links__item:hover,.ff-social-links--chip .ff-social-links__item:focus-visible{background:var(--wp--preset--color--primary,#225d83);color:var(--wp--preset--color--white,#fff);transform:translateY(-2px)}
.ff-social-links--chip.ff-social-links--labelled .ff-social-links__item{width:auto;padding-inline:14px;gap:8px}
@media(prefers-reduced-motion:reduce){.ff-social-links--chip .ff-social-links__item{transition:none}.ff-social-links--chip .ff-social-links__item:hover{transform:none}}
@media(max-width:1024px){.ff-social-links--chip .ff-social-links__item{width:var(--ff-social-chip-tablet,var(--ff-social-chip,37px));height:var(--ff-social-chip-tablet,var(--ff-social-chip,37px))}.ff-social-links--chip.ff-social-links--labelled .ff-social-links__item{width:auto}}
@media(max-width:767px){.ff-social-links--chip .ff-social-links__item{width:var(--ff-social-chip-mobile,var(--ff-social-chip-tablet,var(--ff-social-chip,37px)));height:var(--ff-social-chip-mobile,var(--ff-social-chip-tablet,var(--ff-social-chip,37px)))}.ff-social-links--chip.ff-social-links--labelled .ff-social-links__item{width:auto}}
.ff-widget-area{display:block}.ff-widget-area>.widget{margin-block:0 1.25rem}.ff-widget-area .widget-title{margin-top:0}.ff-widget-area--empty{padding:18px;border:1px dashed #b8c5ce;border-radius:8px;color:#66798b}

.ff-copyright,.ff-site-field{box-sizing:border-box}.ff-copyright a,.ff-site-field a{color:inherit}.ff-site-field.has-text-align-center,.ff-copyright.has-text-align-center{text-align:center}.ff-site-field.has-text-align-right,.ff-copyright.has-text-align-right{text-align:right}
.ff-site-field.ff-responsive-alignment,.ff-copyright.ff-responsive-alignment,.ff-site-field-editor.ff-responsive-alignment,.ff-copyright-editor.ff-responsive-alignment{text-align:var(--ff-text-align,left)}
@media(max-width:1024px){.ff-site-field.ff-responsive-alignment,.ff-copyright.ff-responsive-alignment,.ff-site-field-editor.ff-responsive-alignment,.ff-copyright-editor.ff-responsive-alignment{text-align:var(--ff-text-align-tablet,var(--ff-text-align,left))}}
@media(max-width:767px){.ff-site-field.ff-responsive-alignment,.ff-copyright.ff-responsive-alignment,.ff-site-field-editor.ff-responsive-alignment,.ff-copyright-editor.ff-responsive-alignment{text-align:var(--ff-text-align-mobile,var(--ff-text-align-tablet,var(--ff-text-align,left)))}}


/* FlexFrame 1.6.6 — universal Site Identity block */
.ff-site-identity{display:flex;align-items:var(--ff-si-align,center);color:inherit}
.ff-site-identity__link,.ff-site-identity-editor>.ff-site-identity__link{display:flex;flex-direction:var(--ff-si-direction,row);align-items:var(--ff-si-align,center);gap:var(--ff-si-gap,12px);color:inherit;text-decoration:none;min-width:0}
.ff-site-identity__logo{display:block;flex:0 0 auto;width:var(--ff-si-logo-width,150px);line-height:0}
.ff-site-identity__logo-image{display:block;width:100%;height:auto;max-width:100%}
.ff-site-identity__text{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.ff-site-identity__title{font-size:var(--ff-si-title-size,18px);font-weight:var(--ff-si-title-weight,700);color:inherit;white-space:nowrap}
.ff-site-identity__tagline{font-size:var(--ff-si-tagline-size,13px);opacity:.72;color:inherit}
.ff-site-identity__logo--placeholder{display:flex;align-items:center;justify-content:center;min-height:44px;background:#f0f0f0;color:#666;font-size:11px;line-height:1.2;border:1px dashed #bbb}
@media(max-width:1024px){
 .ff-site-identity__link,.ff-site-identity-editor>.ff-site-identity__link{flex-direction:var(--ff-si-direction-tablet,var(--ff-si-direction,row));align-items:var(--ff-si-align-tablet,var(--ff-si-align,center));gap:var(--ff-si-gap-tablet,var(--ff-si-gap,12px))}
 .ff-site-identity__logo{width:var(--ff-si-logo-width-tablet,var(--ff-si-logo-width,150px))}
 .ff-site-identity__title{font-size:var(--ff-si-title-size-tablet,var(--ff-si-title-size,18px))}
 .ff-site-identity__tagline{font-size:var(--ff-si-tagline-size-tablet,var(--ff-si-tagline-size,13px))}
 .ff-site-identity--hide-title-tablet .ff-site-identity__title{display:none}
 .ff-site-identity--hide-tagline-tablet .ff-site-identity__tagline{display:none}
}
@media(max-width:767px){
 .ff-site-identity__link,.ff-site-identity-editor>.ff-site-identity__link{flex-direction:var(--ff-si-direction-mobile,var(--ff-si-direction-tablet,var(--ff-si-direction,row)));align-items:var(--ff-si-align-mobile,var(--ff-si-align-tablet,var(--ff-si-align,center)));gap:var(--ff-si-gap-mobile,var(--ff-si-gap-tablet,var(--ff-si-gap,12px)))}
 .ff-site-identity__logo{width:var(--ff-si-logo-width-mobile,var(--ff-si-logo-width-tablet,var(--ff-si-logo-width,150px)))}
 .ff-site-identity__title{font-size:var(--ff-si-title-size-mobile,var(--ff-si-title-size-tablet,var(--ff-si-title-size,18px)))}
 .ff-site-identity__tagline{font-size:var(--ff-si-tagline-size-mobile,var(--ff-si-tagline-size-tablet,var(--ff-si-tagline-size,13px)))}
 .ff-site-identity--hide-title-mobile .ff-site-identity__title{display:none}
 .ff-site-identity--hide-tagline-mobile .ff-site-identity__tagline{display:none}
}


/* FlexFrame 1.7 — reusable sticky header controls */
.ff-sticky-header{position:sticky;top:var(--ff-sticky-offset,0px);z-index:var(--ff-sticky-z,1000);transition:background-color var(--ff-sticky-transition,220ms) ease,color var(--ff-sticky-transition,220ms) ease,border-color var(--ff-sticky-transition,220ms) ease,box-shadow var(--ff-sticky-transition,220ms) ease,backdrop-filter var(--ff-sticky-transition,220ms) ease;-webkit-transition:background-color var(--ff-sticky-transition,220ms) ease,color var(--ff-sticky-transition,220ms) ease,border-color var(--ff-sticky-transition,220ms) ease,box-shadow var(--ff-sticky-transition,220ms) ease,-webkit-backdrop-filter var(--ff-sticky-transition,220ms) ease}
.ff-sticky-header.is-ff-stuck{background:var(--ff-sticky-bg,inherit)!important;color:var(--ff-sticky-text,inherit);border-bottom-color:var(--ff-sticky-border,currentColor)!important}
.ff-sticky-header.ff-sticky-has-shadow.is-ff-stuck{box-shadow:0 10px 30px rgba(15,48,72,.10)}
.ff-sticky-header.ff-sticky-has-blur.is-ff-stuck{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.admin-bar .ff-sticky-header{top:calc(var(--ff-sticky-offset,0px) + 32px)}
@media(max-width:782px){.admin-bar .ff-sticky-header{top:calc(var(--ff-sticky-offset,0px) + 46px)}}
@media(min-width:1025px){.ff-sticky-off-desktop{position:relative!important;top:auto!important}}
@media(max-width:1024px) and (min-width:768px){.ff-sticky-off-tablet{position:relative!important;top:auto!important}}
@media(max-width:767px){.ff-sticky-off-mobile{position:relative!important;top:auto!important}}
@media(prefers-reduced-motion:reduce){.ff-sticky-header{transition:none!important}}

/* FlexFrame 1.7.1 — sticky template-part runtime fix.
   A sticky Group inside a template-part wrapper is constrained by that wrapper's height.
   JS promotes the sticky positioning to the template-part shell while the child keeps
   the editable visual/background state. */
.ff-sticky-template-shell{
  position:sticky;
  top:var(--ff-sticky-offset,0px);
  z-index:var(--ff-sticky-z,1000);
  width:100%;
}
.ff-sticky-template-shell>.ff-sticky-promoted-child,
.ff-sticky-template-shell .ff-sticky-promoted-child{
  position:relative;
  top:auto;
  z-index:auto;
}
.admin-bar .ff-sticky-template-shell{top:calc(var(--ff-sticky-offset,0px) + 32px)}
@media(max-width:782px){.admin-bar .ff-sticky-template-shell{top:calc(var(--ff-sticky-offset,0px) + 46px)}}
@media(min-width:1025px){.ff-sticky-template-shell.ff-sticky-off-desktop{position:relative!important;top:auto!important}}
@media(max-width:1024px) and (min-width:768px){.ff-sticky-template-shell.ff-sticky-off-tablet{position:relative!important;top:auto!important}}
@media(max-width:767px){.ff-sticky-template-shell.ff-sticky-off-mobile{position:relative!important;top:auto!important}}
.ff-classic-menu__mobile-cta>.ff-classic-menu__mobile-cta-link:after{display:none!important}

/* FlexFrame 1.8.4 — polished mobile navigation drawer. */
.ff-classic-menu__backdrop{display:none}
.ff-classic-menu__toggle-icon{width:22px;height:18px;border:0!important;position:relative;background:linear-gradient(currentColor,currentColor) center/100% 2px no-repeat;transition:background .18s ease}
.ff-classic-menu__toggle-icon:before,.ff-classic-menu__toggle-icon:after{content:"";position:absolute;left:0;width:100%;border-top:2px solid currentColor;transition:top .2s ease,transform .2s ease}
.ff-classic-menu__toggle-icon:before{top:1px}.ff-classic-menu__toggle-icon:after{top:15px}
.ff-classic-menu.is-open .ff-classic-menu__toggle-icon{background-size:0 2px}
.ff-classic-menu.is-open .ff-classic-menu__toggle-icon:before{top:8px;transform:rotate(45deg)}
.ff-classic-menu.is-open .ff-classic-menu__toggle-icon:after{top:8px;transform:rotate(-45deg)}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right{z-index:30}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right>.ff-classic-menu__toggle{position:relative;z-index:4}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right>.ff-classic-menu__backdrop{display:block;position:fixed;inset:0;border:0;padding:0;background:rgba(var(--ff-mobile-backdrop-rgb,12,28,40),var(--ff-mobile-backdrop-opacity,.22));opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease;z-index:1}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right>.ff-classic-menu__list{
  display:flex!important;position:fixed!important;top:var(--ff-mobile-panel-top,76px)!important;right:14px!important;left:auto!important;
  width:min(var(--ff-mobile-panel-width,360px),calc(100vw - 28px));min-width:0!important;max-height:var(--ff-mobile-panel-max-height,calc(100vh - 92px));overflow:auto;
  padding:var(--ff-mobile-panel-padding,18px)!important;border:1px solid rgba(18,36,51,.10)!important;border-radius:var(--ff-mobile-panel-radius,14px)!important;background:var(--ff-mobile-panel-background,#fff)!important;color:var(--ff-mobile-panel-text,inherit)!important;
  box-shadow:0 22px 55px rgba(18,36,51,.18)!important;flex-direction:column!important;align-items:stretch!important;gap:var(--ff-mobile-menu-gap,4px)!important;
  opacity:0;visibility:hidden;pointer-events:none;transform:translateX(calc(100% + 34px));transition:transform .24s cubic-bezier(.22,1,.36,1),opacity .18s ease,visibility .24s ease;z-index:3!important;
}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right.is-open>.ff-classic-menu__list{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right.is-open>.ff-classic-menu__backdrop{opacity:1;visibility:visible;pointer-events:auto}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right .ff-classic-menu__list>li>a{padding:10px 10px!important;border-radius:7px}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right .ff-classic-menu__list>li.current-menu-item>a{background:#f2f7fa}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right .ff-classic-menu__mobile-cta{margin-top:10px!important;padding-top:12px!important}
html.ff-mobile-menu-open{overflow:hidden}

/* FlexFrame 1.8.5 — full-height mobile drawer beneath the live header. */
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right>.ff-classic-menu__list{
  top:var(--ff-mobile-panel-top,72px)!important;
  bottom:0!important;
  height:var(--ff-mobile-panel-height,calc(100dvh - 72px))!important;
  max-height:none!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  border-radius:14px 0 0 0!important;
}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right>.ff-classic-menu__backdrop{
  top:var(--ff-mobile-panel-top,72px)!important;
}


/* FlexFrame 1.8.9 — mobile drawer content alignment.
   Desktop menus commonly use --ff-menu-justify:flex-end; when the list becomes
   a vertical full-height drawer that value must not push all items to the bottom. */
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right>.ff-classic-menu__list{
  justify-content:flex-start!important;
  align-content:flex-start!important;
}

/* FlexFrame 1.8.9 — mobile drawer active state.
   Keep the subtle active background, but remove the desktop underline rule
   inside the drawer so the selected item does not look double-emphasised. */
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right .ff-classic-menu__list>li>a:after{
  display:none!important;
  content:none!important;
}

/* FlexFrame 1.8.9 — eliminate mobile document-width overflow at the source.
   The off-canvas drawer remains fixed inside the viewport and is revealed with
   clipping instead of being translated hundreds of pixels beyond the viewport. */
@supports (overflow: clip) {
  html, body, .wp-site-blocks { overflow-x: clip; }
}
@supports not (overflow: clip) {
  html, body { overflow-x: hidden; }
}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right > .ff-classic-menu__list{
  transform:translateX(12px)!important;
  clip-path:inset(0 0 0 100%);
  transition:clip-path .24s cubic-bezier(.22,1,.36,1),transform .24s cubic-bezier(.22,1,.36,1),opacity .18s ease,visibility .24s ease;
  contain:layout paint;
}
.ff-classic-menu.is-mobile.ff-classic-menu--mobile-drawer-right.is-open > .ff-classic-menu__list{
  transform:none!important;
  clip-path:inset(0 0 0 0);
}

/* FlexFrame Blocks 1.9.0 — reusable background video for FlexFrame Container. */
.ff-container--has-bg-video{position:relative;isolation:isolate;background-image:none!important}
.ff-container--has-bg-video>.ff-container__bg-video,
.ff-container--has-bg-video>.ff-container__bg-video-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ff-container--has-bg-video>.ff-container__bg-video{z-index:0;display:block;border:0}
.ff-container--has-bg-video>.ff-container__bg-video-overlay{z-index:1}
.ff-container--has-bg-video>.ff-container__bg-video-content{position:relative;z-index:2;display:inherit;flex-direction:inherit;flex-wrap:inherit;grid-template-columns:inherit;gap:inherit;justify-content:inherit;align-items:inherit;width:100%;min-width:0;min-height:inherit}
@media(prefers-reduced-motion:reduce){.ff-container--has-bg-video>.ff-container__bg-video{display:none}}

/* FlexFrame 2.0 — accessible mobile nested-menu accordion. */
.ff-submenu-toggle{display:none}
.ff-classic-menu.is-mobile .menu-item-has-children{position:relative}
.ff-classic-menu.is-mobile .menu-item-has-children>.ff-submenu-toggle{display:grid;place-items:center;position:absolute;right:8px;top:6px;width:36px;height:36px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;cursor:pointer;z-index:2}
.ff-classic-menu.is-mobile .menu-item-has-children>.ff-submenu-toggle:hover,.ff-classic-menu.is-mobile .menu-item-has-children>.ff-submenu-toggle:focus{background:rgba(34,93,131,.08);outline:0}
.ff-classic-menu.is-mobile .ff-submenu-toggle span{display:block;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s ease}
.ff-classic-menu.is-mobile .menu-item-has-children.is-submenu-open>.ff-submenu-toggle span{transform:translateY(2px) rotate(225deg)}
.ff-classic-menu.is-mobile .menu-item-has-children>a{padding-right:52px!important}
.ff-classic-menu.is-mobile .menu-item-has-children>.sub-menu{display:none!important;position:static!important;opacity:1!important;visibility:visible!important;transform:none!important;box-shadow:none!important;border:0!important;padding:4px 0 7px 18px!important;min-width:0!important;background:transparent!important}
.ff-classic-menu.is-mobile .menu-item-has-children.is-submenu-open>.sub-menu{display:block!important}
.ff-classic-menu.is-mobile .sub-menu .menu-item-has-children>.sub-menu{padding-left:14px!important}

@media(max-width:1024px){
 .ff-container.ff-item-tablet--grow{flex:1 1 0%!important;width:auto!important;max-width:none!important}
 .ff-container.ff-item-tablet--fit{flex:0 0 auto!important;width:auto!important;max-width:none!important}
 .ff-container.ff-item-tablet--fixed{flex:0 0 var(--ff-width-tablet,var(--ff-width,auto))!important;width:var(--ff-width-tablet,var(--ff-width,auto))!important}
}
@media(max-width:767px){
 .ff-container.ff-item-mobile--grow{flex:1 1 0%!important;width:auto!important;max-width:none!important}
 .ff-container.ff-item-mobile--fit{flex:0 0 auto!important;width:auto!important;max-width:none!important}
 .ff-container.ff-item-mobile--fixed{flex:0 0 var(--ff-width-mobile,var(--ff-width-tablet,var(--ff-width,auto)))!important;width:var(--ff-width-mobile,var(--ff-width-tablet,var(--ff-width,auto)))!important}
}
.ff-has-z-index{position:relative;z-index:var(--ff-z,auto)}
@media(max-width:1024px){.ff-has-z-index{z-index:var(--ff-z-tablet,var(--ff-z,auto))}}
@media(max-width:767px){.ff-has-z-index{z-index:var(--ff-z-mobile,var(--ff-z-tablet,var(--ff-z,auto)))}}

/* Counter and Progress.
   Both render their finished state on the server, so the figure is right with
   JavaScript off; the script only animates the way there. Colour, type and
   spacing come from the native block supports, which is why almost nothing is
   set here. */
.ff-counter{display:flex;flex-direction:column;gap:.25rem}
/* No gap between the number and its affix: "48h" and "$4.2M" are how a unit
   and a currency are written. Someone who wants a space types one into the
   field, which is the only way to get both behaviours right. */
.ff-counter__figure{display:flex;align-items:baseline;justify-content:var(--ff-counter-justify,flex-start);line-height:1.05}
.ff-counter__value{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.ff-counter__affix{opacity:.75}
.ff-counter__label{font-size:.8em;opacity:.75}

.ff-progress{display:flex;flex-direction:column;gap:.4rem}
.ff-progress__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.85em}
.ff-progress__amount{font-variant-numeric:tabular-nums}
.ff-progress__track{
  overflow:hidden;width:100%;
  height:var(--ff-progress-height,10px);
  border-radius:var(--ff-progress-radius,999px);
  background:var(--ff-progress-track,rgba(19,36,51,.10));
}
.ff-progress__bar{
  display:block;height:100%;width:var(--ff-progress-value,0%);
  border-radius:inherit;
  background:var(--ff-progress-bar,var(--wp--preset--color--primary,#225d83));
}
/* Without JavaScript the bar is already at its value; with it, the width starts
   at zero and this is what moves it. */
.ff-progress.is-running .ff-progress__bar{transition:width var(--ff-progress-duration,1200ms) cubic-bezier(.22,.61,.36,1)}
@media (prefers-reduced-motion:reduce){
  .ff-progress__bar{transition:none!important}
}

/* A horizontal classic menu inside centred text should centre with it. The list
   is a flex row, so it does not follow text-align on its own, and a footer
   legal row that centres its copyright while its links stay left reads as a
   mistake. Stated here rather than in a theme, because the class is this
   plugin's own. */
.ff-classic-menu:not(.is-mobile) .ff-classic-menu__list{
  justify-content:inherit;
}
[style*="text-align:center"] .ff-classic-menu:not(.is-mobile) .ff-classic-menu__list,
.has-text-align-center .ff-classic-menu:not(.is-mobile) .ff-classic-menu__list{
  justify-content:center;
}

/* An icon is a flex item wherever it is placed: it never stretches, and beside
   a run of text it sits on the first line rather than centring against the
   whole block. Stated here because the class is this plugin's, and a theme
   that had to say it would be reaching across the boundary. */
.ff-icon{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
}
/* Nudged down so it sits on the same optical line as the text beside it — but
   only when there is text beside it. Alone in a round badge the nudge made the
   box 2px taller than it was wide, and a border-radius of 50% on a box that is
   not square draws an ellipse. */
.wp-block-group.is-layout-flex > .ff-icon:not(:only-child){margin-top:.15em}

/* A classic menu laid out horizontally is a flex row that follows the
   justification of whatever contains it, so a footer legal row that centres
   its copyright centres its links too. */
.ff-classic-menu:not(.is-mobile) .ff-classic-menu__list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.4rem 1.25rem;
  margin:0;
  padding:0;
  list-style:none;
}
/* Items sit on one line. Without this each one keeps its own baseline and two
   links of different length stand a few pixels apart vertically, which reads as
   a wobble rather than a row. */
.ff-classic-menu:not(.is-mobile) .ff-classic-menu__list > li{
  display:flex;
  align-items:center;
  margin:0;
}
@media (max-width:781px){
  .wp-block-group.is-content-justification-center .ff-classic-menu:not(.is-mobile),
  .wp-block-group.is-content-justification-center .ff-classic-menu:not(.is-mobile) .ff-classic-menu__list{
    width:100%;
    justify-content:center;
  }
}

/* A grid with an odd number of items leaves the last one alone on its row. Where
   the items are short — a figure and a label — centring that last one across the
   row reads better than leaving it against an edge. Where they are cards, the
   same rule makes one card twice the size of its neighbours, so this is asked
   for with a class rather than applied to every grid. */
@media (max-width:767px){
  .ff-container--grid.is-centre-last > *:last-child:nth-child(odd){
    grid-column:1 / -1;
    justify-self:center;
  }
}

/* The FAQ block lays its questions out itself, so a page does not have to wrap
   it in a grid container. Everything about how a question looks stays in the
   theme, on .ff-faq — this only decides how many sit beside each other. */
.ff-faq--grid{display:grid;grid-template-columns:repeat(var(--ff-faq-cols,3),minmax(0,1fr));gap:var(--ff-faq-gap,18px)}
.ff-faq--grid > details{min-width:0}
@media(max-width:1024px){.ff-faq--grid{grid-template-columns:repeat(var(--ff-faq-cols-tablet,2),minmax(0,1fr))}}
@media(max-width:767px){.ff-faq--grid{grid-template-columns:repeat(var(--ff-faq-cols-mobile,1),minmax(0,1fr))}}

/* An image sitting on a line with text — a flag beside a language, a mark beside
   a label. An img is inline by default, so its line box adds a few pixels of
   descender space and the picture ends up below the middle of the words next to
   it. This is a utility a page can put on an image block; it changes nothing
   about how the image is sized. */
figure.ff-media-inline{margin:0;line-height:0}
figure.ff-media-inline img{display:block}

/* Article cards, for the grid and for the related row.
   The card's own look — border, background, the lift under a pointer — belongs
   to the theme on .ff-card. What is here is the part that has to be true
   wherever the block is used: every card in a row the same height, the title
   and the summary held to a set number of lines and trailing off rather than
   pushing the card taller, and the way in sitting on the floor of the card
   rather than wherever the writing happened to stop. */
.ff-articles{display:grid;grid-template-columns:repeat(var(--ff-articles-cols,3),minmax(0,1fr));gap:var(--ff-articles-gap,22px);align-items:stretch}
/* A baseline the card is presentable with on its own. A theme that styles
   .ff-card — FlexFrame does — refines it from here; a theme that does not still
   gets a card rather than a stack of loose text. */
/* No height:100% here. A grid row is auto-sized, so a percentage height on the
   item has nothing definite to resolve against and the card overflows its row
   into the one below — which is why the rows were touching with a 22px gap set
   between them. align-items:stretch on the grid already fills the row, and the
   card being a flex column is what lets the link sit on its floor. */
.ff-article-card{display:flex;flex-direction:column;min-width:0;padding:18px;background:var(--wp--preset--color--white,#fff);border:1px solid var(--wp--preset--color--line,#d9e5ec);border-radius:10px}
.ff-article-card__frame{display:block;line-height:0;border-radius:7px;overflow:hidden}
.ff-article-card__image{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.ff-article-card__term{align-self:flex-start;margin-top:16px;padding:4px 12px;border-radius:999px;border:1px solid var(--wp--preset--color--line,#d9e5ec);background:var(--wp--preset--color--surface,#f6f9fb);color:var(--wp--preset--color--primary,#225d83);font-size:.75rem;line-height:1.4}
.ff-article-card__title{margin:14px 0 0;font-size:1rem;line-height:1.35}
.ff-article-card__title a{color:var(--wp--preset--color--primary,#225d83);text-decoration:none}
.ff-article-card__title a:hover{text-decoration:underline}
.ff-article-card__excerpt{margin:10px 0 0;font-size:.875rem;line-height:1.55;color:var(--wp--preset--color--muted,#66798b)}
.ff-article-card__more{margin-top:auto;padding-top:16px;font-size:.8125rem;text-decoration:none}
.ff-article-card__more:hover{text-decoration:underline}
/* Clamped rather than truncated with a character count: the browser measures
   the rendered line, so it lands correctly at every width and in every script. */
.ff-article-card__title,.ff-article-card__excerpt{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.ff-article-card__title{-webkit-line-clamp:var(--ff-article-title-lines,2)}
.ff-article-card__excerpt{-webkit-line-clamp:var(--ff-article-excerpt-lines,3)}
@media(max-width:1024px){.ff-articles{grid-template-columns:repeat(var(--ff-articles-cols-tablet,2),minmax(0,1fr))}}
@media(max-width:767px){.ff-articles{grid-template-columns:repeat(var(--ff-articles-cols-mobile,1),minmax(0,1fr))}}

/* A card whose whole face is the link.
   Only the title is an anchor in the markup, which is right for a screen reader
   — one link with one name, not three that all say the same thing. This spreads
   that one anchor's hit area over the card, so a pointer anywhere on it works
   and the card takes the pointer cursor. Anything that must stay separately
   clickable inside such a card needs position:relative of its own. */
.ff-stretch-link{position:relative}
.ff-stretch-link .ff-stretch-link__target::after{content:"";position:absolute;inset:0}

/* A list inside a card.
   The class carried no rules at all, so the browser's own 40px indent applied —
   wider than the card's own padding, which left the bullet text hanging further
   in than the heading and the paragraph above it. */
.ff-list{padding-left:1.15rem;margin-left:0}
.ff-list li{padding-left:.1rem}
.ff-list li::marker{color:var(--wp--preset--color--muted,#66798b)}

/* The mobile drawer measured 38px wider than it was told to be.

   The panel sets a width, 18px of padding on each side and a 1px border, but
   nothing had ever given it border-box sizing — so the padding and border were
   added to the declared width rather than counted inside it. Anchored to
   right:14px, the extra 38px pushed its left edge off the screen:

     320px viewport → left edge at -24px
     390px viewport → left edge at -22px   (iPhone 14/15/16)
     414px viewport → left edge at   2px
     430px viewport → left edge at  18px   (looks correct)

   Which is why it read as a drawer opening from the wrong side, with its
   padding gone and a strip of backdrop left over on the right: below about
   412px the panel is simply wider than the room it was given. Above it, the
   same bug is invisible. Nothing about the live server was involved. */
.ff-classic-menu.is-mobile > .ff-classic-menu__list{box-sizing:border-box}
