/* CodeLinSoft Nova 4.0 — coherent page system */
:root{
  --cls-font:"Cantarell",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --cls-ink:#0b2f48;
  --cls-muted:#5e7586;
  --cls-line:#d9e7ef;
  --cls-soft:#f5f9fc;
  --cls-soft-2:#eef7fb;
  --cls-deep:#052e48;
  --cls-deep-2:#075f83;
  --cls-shadow:0 18px 55px rgba(6,45,70,.09);
  --cls-shadow-soft:0 10px 30px rgba(6,45,70,.07);
}
html{font-family:var(--cls-font);scroll-behavior:smooth}
body,button,input,select,textarea{font-family:var(--cls-font)}
body{font-size:var(--cls-body-size);color:var(--cls-ink);background:#fff}
.cls-header,.cls-topbar,.cls-footer,.cls-home,.cls-main,.cls-page-hero{font-family:var(--cls-font)}

/* Display Page — same visual language for pages, bbPress, BasePress, Woo and BuddyPress */
.cls-display-page,.clsgs-page-hero{
  position:relative;isolation:isolate;overflow:hidden;
  min-height:var(--cls-page-hero-height);
  padding:48px 0;
  color:#fff;
  background:
    radial-gradient(circle at 86% 28%,rgba(18,189,233,.23),transparent 28%),
    radial-gradient(circle at 74% 100%,rgba(7,135,249,.22),transparent 34%),
    linear-gradient(125deg,#052f49 0%,#064c6c 55%,#077da0 100%);
}
.cls-display-page:before,.clsgs-page-hero:before{content:"";position:absolute;inset:auto -80px -150px auto;width:420px;height:420px;border:1px solid rgba(255,255,255,.09);border-radius:50%;box-shadow:0 0 0 50px rgba(255,255,255,.025),0 0 0 100px rgba(255,255,255,.018);z-index:-1}
.cls-display-page.is-compact{min-height:170px;padding:34px 0}
.cls-display-page .cls-shell,.clsgs-page-hero .cls-shell{display:grid;align-content:center;min-height:inherit}
.cls-display-page .cls-eyebrow,.clsgs-page-hero .cls-eyebrow{display:block;margin:0 0 8px;color:#7fe8ff;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.cls-display-page h1,.clsgs-page-hero h1{max-width:980px;margin:0;font-size:clamp(38px,5vw,64px);line-height:.98;letter-spacing:-.035em;color:#fff}
.cls-display-page p,.clsgs-page-hero p{max-width:760px;margin:14px 0 0;color:#d5edf6;font-size:17px;line-height:1.55}

/* Main page content */
.cls-main,.clsgs-main{background:linear-gradient(180deg,#f7fafc 0,#fff 210px);padding:34px 0 64px}
.cls-content-card,.clsgs-content-card,.cls-component-card{
  background:#fff;border:1px solid var(--cls-line);border-radius:var(--cls-page-radius);
  box-shadow:var(--cls-shadow);padding:var(--cls-page-padding);
}
.cls-content-plain,.clsgs-content-plain{padding:4px 0}
.cls-content,.clsgs-content{color:var(--cls-ink);font-size:16px;line-height:1.68}
.cls-content>*,.clsgs-content>*{max-width:100%}
.cls-content h2,.clsgs-content h2{font-size:clamp(26px,3vw,38px);line-height:1.08;letter-spacing:-.025em;color:#082f49;margin:1.65em 0 .65em}
.cls-content h3,.clsgs-content h3{font-size:clamp(20px,2.1vw,27px);line-height:1.16;color:#0b3d5c;margin:1.35em 0 .55em}
.cls-content p,.clsgs-content p{color:#425f72}
.cls-content a,.clsgs-content a{font-weight:700;text-decoration-thickness:1px;text-underline-offset:3px}
.cls-content img,.clsgs-content img{max-width:100%;height:auto}
.cls-content figure,.clsgs-content figure{margin-inline:auto}
.cls-content .wp-block-image img,.clsgs-content .wp-block-image img{border-radius:15px;box-shadow:var(--cls-shadow-soft)}
.cls-content .wp-block-button__link,.clsgs-content .wp-block-button__link{border-radius:10px!important;background:linear-gradient(135deg,var(--cls-primary),#1d70f4)!important;color:#fff!important;font-weight:700!important;padding:.8em 1.2em!important}

/* New Gutenberg section block created by Studio 4.0 */
.clsgs-section{position:relative;margin:var(--cls-section-gap) 0;border:1px solid var(--cls-line);border-radius:18px;background:#fff;box-shadow:var(--cls-shadow-soft);overflow:hidden}
.clsgs-section__head{padding:23px 26px 0}
.clsgs-section__eyebrow{display:block;margin-bottom:7px;color:var(--clsgs-accent,#0787f9);font-size:10px;font-weight:700;letter-spacing:.17em;text-transform:uppercase}
.clsgs-section__head h2{margin:0!important;font-size:clamp(24px,3vw,34px)!important;display:flex;align-items:center;gap:11px;border:0!important;padding:0!important}
.cls-section-icons .clsgs-section__head h2:before{content:"";width:28px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--clsgs-accent,#12bde9),var(--clsgs-accent2,#0787f9));flex:0 0 auto}
.clsgs-section__body{padding:22px 26px 26px}
.clsgs-section--intro{border-color:#cde7f2;background:linear-gradient(145deg,#f3fbff,#fff)}
.clsgs-section--intro .clsgs-section__body{font-size:17px}
.clsgs-section--features .clsgs-section__body,.clsgs-section--services .clsgs-section__body,.clsgs-section--team .clsgs-section__body,.clsgs-section--pricing .clsgs-section__body{background:linear-gradient(180deg,#fff,#f9fcfe)}
.clsgs-section--downloads{border-left:4px solid var(--clsgs-accent,#12bde9)}
.clsgs-section--gallery .wp-block-gallery,.clsgs-section--portfolio .wp-block-gallery{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px!important}
.clsgs-section--roadmap{background:linear-gradient(145deg,#fff,#f6fafc)}
.clsgs-section--legal{box-shadow:none;border-color:#e2e9ee}
.cls-section-alternation .clsgs-section:nth-child(even){background:#f9fcfe}

/* Existing core blocks become part of the same visual language */
.clsgs-section .wp-block-columns{gap:18px}
.clsgs-section .wp-block-column{min-width:0}
.clsgs-section--features .wp-block-columns>.wp-block-column,
.clsgs-section--services .wp-block-columns>.wp-block-column,
.clsgs-section--team .wp-block-columns>.wp-block-column,
.clsgs-section--pricing .wp-block-columns>.wp-block-column{
  border:1px solid #deebf2;border-radius:14px;background:#fff;padding:18px;box-shadow:0 8px 24px rgba(6,45,70,.05)
}
.clsgs-section table,.cls-content table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--cls-line);border-radius:13px;overflow:hidden;background:#fff}
.clsgs-section th,.cls-content th{background:#063b59;color:#fff;text-align:left}
.clsgs-section td,.clsgs-section th,.cls-content td,.cls-content th{padding:11px 13px;border-bottom:1px solid #e4edf3}
.clsgs-section tr:last-child td,.cls-content tr:last-child td{border-bottom:0}
.clsgs-section blockquote,.cls-content blockquote{margin:24px 0;padding:19px 22px;border-left:4px solid var(--clsgs-accent,#12bde9);border-radius:0 12px 12px 0;background:#f3faff;color:#31566d}
.clsgs-section pre,.cls-content pre{border-radius:13px;background:#071e2e;color:#dff5ff;padding:18px;overflow:auto}

/* Family-specific page reconstruction */
body.cls-layout--services .clsgs-section--services .wp-block-columns,
body.cls-profile--servizi .clsgs-section .wp-block-columns{align-items:stretch}
body.cls-layout--team .clsgs-section--team .wp-block-columns>.wp-block-column{text-align:center}
body.cls-layout--support .clsgs-section--pricing .wp-block-columns>.wp-block-column:nth-child(2){transform:translateY(-6px);border-color:#78d9ef}
body.cls-layout--portfolio .clsgs-section--stats .wp-block-columns>.wp-block-column{text-align:center;background:#082f49;color:#fff}
body.cls-layout--portfolio .clsgs-section--stats .wp-block-column h2,body.cls-layout--portfolio .clsgs-section--stats .wp-block-column h3{color:#fff}
body[class*="cls-layout--product"] .clsgs-section--intro{border-top:4px solid var(--clsgs-accent,#12bde9)}
body[class*="cls-layout--product"] .clsgs-section--gallery img{aspect-ratio:16/10;object-fit:cover}
body.cls-layout--downloads .clsgs-section__body{overflow:auto}
body.cls-layout--legal .clsgs-section{max-width:930px;margin-inline:auto}
body.cls-layout--legal .clsgs-section__body{font-size:16px;line-height:1.85}
body.cls-layout--gallery .clsgs-section--gallery .wp-block-image img{width:100%;aspect-ratio:16/10;object-fit:cover}
body.cls-layout--story .clsgs-section--intro{background:linear-gradient(135deg,#f1faff,#fff)}
body.cls-layout--docs .clsgs-section{border-left:3px solid var(--clsgs-accent,#2aa4c7)}

/* bbPress — keep supplied internal templates, rebuild only their outer display and controls. */
body.cls-bbpress .cls-main--bbpress{padding-top:30px}
body.cls-bbpress .cls-component-card--bbpress{padding:24px 26px 30px;overflow:visible}
body.cls-bbpress .bbp-forum-front,body.cls-bbpress .bbp-forum-content,body.cls-bbpress .bbp-topic-wrapper,body.cls-bbpress .bbp-single-user,body.cls-bbpress .bbp-view,body.cls-bbpress .bbp-reply-wrapper{width:100%!important;max-width:none!important;margin:0!important}
body.cls-bbpress .entry-title{display:none!important}
body.cls-bbpress #bbpress-forums{width:100%!important;max-width:none!important;margin:0!important;font-family:var(--cls-font)!important;color:var(--cls-ink)}
body.cls-bbpress #bbpress-forums input[type="text"],body.cls-bbpress #bbpress-forums input[type="search"],body.cls-bbpress #bbpress-forums input[type="password"],body.cls-bbpress #bbpress-forums input[type="email"],body.cls-bbpress #bbpress-forums textarea,body.cls-bbpress #bbpress-forums select{border:1px solid #ccdde8!important;border-radius:9px!important;background:#fff!important;padding:10px 12px!important;min-height:40px;box-shadow:0 2px 8px rgba(6,45,70,.03)}
body.cls-bbpress #bbpress-forums button,body.cls-bbpress #bbpress-forums input[type="submit"],body.cls-bbpress .bbp-submit-wrapper button{border:0!important;border-radius:9px!important;background:linear-gradient(135deg,var(--cls-primary),#196fee)!important;color:#fff!important;font-weight:700!important;padding:10px 15px!important;cursor:pointer}
body.cls-bbpress .bbp-hub-toolbar{border-bottom:1px solid var(--cls-line);padding-bottom:15px;margin-bottom:20px}
body.cls-bbpress .bbp-hub-hero{border:1px solid #dbe9f1!important;border-radius:15px!important;background:linear-gradient(135deg,#f6fbfe,#fff)!important;box-shadow:none!important}
body.cls-bbpress .bbp-hub-title{font-family:var(--cls-font)!important;color:#092f49!important;letter-spacing:-.025em}
body.cls-bbpress .bbp-hub-subtitle{color:#637887!important}
body.cls-bbpress .bbp-hub-widget{border-color:#dce9f1!important;border-radius:14px!important;box-shadow:0 8px 24px rgba(6,45,70,.05)!important}
body.cls-bbpress .bbp-forum-tile{border-color:#dce9f1!important;border-radius:14px!important;box-shadow:0 8px 24px rgba(6,45,70,.05)!important;overflow:hidden}
body.cls-bbpress .bbp-tabs-bar{background:transparent!important}
body.cls-bbpress .bbp-account-toggle{border:1px solid #d5e4ed!important}
body.cls-bbpress .bbp-hub-sidebar-toggle{border:1px solid #d5e4ed!important;background:#fff!important;border-radius:9px!important;color:#173b52!important}
body.cls-bbpress .bbp-template-notice,body.cls-bbpress div.bbp-template-notice{border-radius:11px!important;border:1px solid #c9e4f1!important;background:#effaff!important;color:#31566d!important}
body.cls-bbpress .bbp-pagination{margin:18px 0}
body.cls-bbpress .bbp-breadcrumb{display:none}

/* BasePress — plugin keeps routing and logic, Nova owns presentation. */
body.cls-basepress .bpress-wrap,body.cls-basepress .bpress-content-wrap{font-family:var(--cls-font)!important}
body.cls-basepress .bpress-wrap{width:min(calc(100% - 40px),var(--cls-content));margin:30px auto 60px}
body.cls-basepress .bpress-content-wrap{max-width:none!important;border:1px solid var(--cls-line)!important;border-radius:18px!important;background:#fff!important;box-shadow:var(--cls-shadow)!important;padding:28px!important}
body.cls-basepress .bpress-content-wrap h1,body.cls-basepress .bpress-content-wrap h2,body.cls-basepress .bpress-content-wrap h3{font-family:var(--cls-font)!important;color:#0a3552!important}
body.cls-basepress .bpress-content-wrap pre{background:#071e2e!important;color:#e4f7ff!important;border-radius:12px!important;padding:16px!important}

/* WooCommerce */
body.cls-woocommerce .woocommerce,body.cls-woocommerce .wc-block-components-main{font-family:var(--cls-font)!important}
body.cls-woocommerce .cls-main--woocommerce{background:linear-gradient(180deg,#f7fafc,#fff);padding:30px 0 65px}
body.cls-woocommerce .cls-woo-card{border-radius:18px;box-shadow:var(--cls-shadow)}
.woocommerce ul.products li.product,.wc-block-grid__product{transition:transform .2s ease,box-shadow .2s ease}
.woocommerce ul.products li.product:hover,.wc-block-grid__product:hover{transform:translateY(-3px);box-shadow:0 16px 42px rgba(6,45,70,.12)}

/* BuddyPress */
body.cls-context--buddypress .buddypress-wrap{font-family:var(--cls-font)!important;box-shadow:var(--cls-shadow);border-radius:18px!important}

/* Page-specific accent variables — shared with Gutenberg Studio. */
body[class*="cls-profile--"]{--clsgs-accent:#12bde9;--clsgs-accent2:#0787f9}
.cls-profile--servizi{--clsgs-accent:#13c4e8;--clsgs-accent2:#0878e6}.cls-profile--team{--clsgs-accent:#1aa0ff;--clsgs-accent2:#655de8}.cls-profile--sostienici{--clsgs-accent:#16bfa2;--clsgs-accent2:#0787f9}.cls-profile--portofolio,.cls-profile--portofolio-siti-web{--clsgs-accent:#26b5dc;--clsgs-accent2:#3569dc}
.cls-profile--fabariagest{--clsgs-accent:#16a6e3;--clsgs-accent2:#067be7}.cls-profile--lylibrary{--clsgs-accent:#1dbd73;--clsgs-accent2:#0c9670}.cls-profile--codicefiscale{--clsgs-accent:#8b52df;--clsgs-accent2:#6346ce}.cls-profile--camp{--clsgs-accent:#ef7a31;--clsgs-accent2:#ec4f4f}.cls-profile--scratch-3{--clsgs-accent:#f59d30;--clsgs-accent2:#f26b38}.cls-profile--squidgui{--clsgs-accent:#22b9c7;--clsgs-accent2:#1677c7}.cls-profile--pykaraoke-mac{--clsgs-accent:#d756c8;--clsgs-accent2:#8758df}.cls-profile--diploma{--clsgs-accent:#e0a72b;--clsgs-accent2:#d47722}.cls-profile--utentigsuite{--clsgs-accent:#3c8be8;--clsgs-accent2:#4762d2}.cls-profile--wallpapers{--clsgs-accent:#35b4d6;--clsgs-accent2:#6456d9}
.cls-profile--template{--clsgs-accent:#ef7c28;--clsgs-accent2:#3e66cf}.cls-profile--template-wordpress{--clsgs-accent:#1da1da;--clsgs-accent2:#287cb2}.cls-profile--download{--clsgs-accent:#19b8a5;--clsgs-accent2:#0985df}.cls-profile--codelinsoft_wiki{--clsgs-accent:#2aa4c7;--clsgs-accent2:#136ca2}
.cls-profile--note-legali,.cls-profile--privacy,.cls-profile--regolamento-ue-2016-679-del-parlamento-europeo-e-del-consiglio,.cls-profile--teerms-of-use,.cls-profile--faq-in-materia-di-cookie{--clsgs-accent:#60829a;--clsgs-accent2:#204763}

@media(max-width:900px){
  .cls-display-page,.clsgs-page-hero{padding:36px 0;min-height:150px!important}
  .cls-display-page h1,.clsgs-page-hero h1{font-size:clamp(34px,8vw,50px)}
  .clsgs-section__head{padding:20px 20px 0}.clsgs-section__body{padding:18px 20px 22px}
  body.cls-bbpress .cls-component-card--bbpress{padding:18px}
}
@media(max-width:620px){
  .cls-main,.clsgs-main{padding-top:20px}.cls-content-card,.clsgs-content-card,.cls-component-card{padding:18px;border-radius:14px}
  .clsgs-section{border-radius:14px}.clsgs-section__head{padding:17px 17px 0}.clsgs-section__body{padding:16px 17px 19px}
  .clsgs-section .wp-block-columns{display:block}.clsgs-section .wp-block-column{margin-bottom:12px}
  body.cls-bbpress .cls-component-card--bbpress{padding:12px;border-left:0;border-right:0;border-radius:0;box-shadow:none}
}

/* ========================================================================
 * Nova 4.2 — centered header/topbar, Font Awesome UI and Back to top
 * ======================================================================== */
.cls-topbar .cls-shell,
.cls-header .cls-shell,
.cls-search-panel .cls-shell{width:min(calc(100% - 40px),var(--cls-header-width,1380px))}

.cls-topbar__inner{
  min-height:36px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:20px;
}
.cls-topbar__left{justify-self:start;min-width:0}
.cls-topbar__center{justify-self:center;min-width:0}
.cls-topbar__right{justify-self:end;display:flex;align-items:center;gap:15px;white-space:nowrap}
.cls-topbar__claim{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.cls-topbar__claim i{color:#5cd9f3;font-size:11px}
.cls-topbar__right a,.cls-topbar__menu a{display:inline-flex;align-items:center;gap:6px;color:#d9edf7;font-weight:600}
.cls-topbar__right a:hover,.cls-topbar__menu a:hover{color:#fff}
.cls-topbar__menu{display:flex;align-items:center;gap:16px;list-style:none;margin:0;padding:0}
.cls-topbar__menu li{margin:0;padding:0}
.cls-topbar .cls-top-search{display:none!important}

@media (min-width:1101px){
  .cls-header__inner{
    height:var(--cls-header-height,82px);
    display:grid;
    grid-template-columns:minmax(240px,1fr) auto minmax(240px,1fr);
    align-items:center;
    gap:22px;
  }
  .cls-brand{justify-self:start;min-width:0}
  .cls-brand a{display:inline-flex;align-items:center}
  .cls-brand img,.cls-brand .custom-logo{width:var(--cls-logo-width,235px);max-width:100%;max-height:62px;object-fit:contain}
  .cls-nav{justify-self:center;min-width:0}
  .cls-menu{justify-content:center}
  .cls-header__actions{justify-self:end;white-space:nowrap}
}

.cls-header__actions>a,.cls-header__actions>button{font-size:15px}
.cls-header__actions i{line-height:1}
.cls-download-btn{display:inline-flex!important;gap:8px!important}
.cls-download-btn i{font-size:13px}
.cls-submenu-toggle span{font-size:13px}
.cls-search-panel__inner{padding-block:1px}

.cls-back-to-top{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:1200;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
  background:linear-gradient(145deg,#087ef2,#07567d);
  color:#fff;
  box-shadow:0 14px 34px rgba(4,47,76,.25);
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease,box-shadow .2s ease;
}
.cls-back-to-top.is-visible{opacity:1;visibility:visible;transform:none}
.cls-back-to-top:hover{box-shadow:0 18px 42px rgba(4,47,76,.34);transform:translateY(-2px)}
.cls-back-to-top:focus-visible{outline:3px solid rgba(18,189,233,.45);outline-offset:3px}
.cls-back-to-top i{font-size:16px}

@media(max-width:1100px){
  .cls-topbar__inner{grid-template-columns:1fr auto}
  .cls-topbar__center{display:none}
  .cls-topbar__right{grid-column:2;justify-self:end}
  .cls-header__inner{height:var(--cls-header-height,82px);grid-template-columns:minmax(180px,1fr) auto;gap:10px}
  .cls-brand{justify-self:start}
  .cls-header__actions{justify-self:end}
  .cls-mobile-toggle{display:grid!important;place-items:center}
  .cls-nav{top:calc(100% + 8px)!important}
}

@media(max-width:720px){
  .cls-topbar .cls-shell,.cls-header .cls-shell,.cls-search-panel .cls-shell{width:min(calc(100% - 24px),var(--cls-header-width,1380px))}
  .cls-topbar__inner{display:flex;justify-content:flex-end;min-height:34px}
  .cls-topbar__left,.cls-topbar__center{display:none}
  .cls-topbar__right{gap:12px;overflow-x:auto;max-width:100%;scrollbar-width:none}
  .cls-topbar__right::-webkit-scrollbar{display:none}
  .cls-topbar__right a{font-size:11px}
  .cls-topbar__right i{font-size:11px}
  .cls-header__inner{height:68px;grid-template-columns:minmax(0,1fr) auto}
  .cls-brand img,.cls-brand .custom-logo{width:min(180px,var(--cls-logo-width,235px))}
  .cls-header__actions{gap:5px}
  .cls-header__actions>a,.cls-header__actions>button{width:36px;height:36px}
  .cls-header__actions .cls-download-btn{display:none!important}
  .cls-header__actions .cls-cart{display:none!important}
  .cls-back-to-top{right:14px;bottom:14px;width:43px;height:43px;border-radius:13px}
}
@media (prefers-reduced-motion:reduce){
  .cls-back-to-top{transition:none}
}

/* Accessible submenu trigger added to WordPress-managed menus. */
.cls-menu>.menu-item-has-children>a{padding-right:31px}
.cls-submenu-trigger{
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  width:25px;height:25px;border:0;background:transparent;color:#17364e;
  display:grid;place-items:center;cursor:pointer;border-radius:7px;padding:0;
}
.cls-submenu-trigger:hover,.cls-submenu-trigger:focus-visible{color:var(--cls-primary);background:#eef8ff}
.cls-submenu-trigger i{font-size:10px;transition:transform .16s ease}
.menu-item-has-children.is-open>.cls-submenu-trigger i{transform:rotate(180deg)}
@media(max-width:1100px){
  .cls-menu>.menu-item-has-children>a{padding-right:48px}
  .cls-submenu-trigger{right:8px;top:20px}
  .cls-submenu-toggle{position:relative}
  .cls-submenu-toggle i,.cls-submenu-toggle span{margin-left:auto}
}

/* 4.3 — typography hardening: footer and every Gutenberg surface use Cantarell. */
.cls-footer,.entry-content,.entry-content .wp-block-group,.entry-content .wp-block-columns,.entry-content .wp-block-button,.entry-content .wp-block-heading{font-family:var(--cls-font)!important}

/* WooCommerce widget-managed sidebar. */
body.cls-woocommerce .cls-woo-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px;align-items:start}
body.cls-woocommerce .cls-woo-content{min-width:0}
body.cls-woocommerce .cls-woo-sidebar{display:grid;gap:16px;position:sticky;top:calc(var(--cls-header-height,82px) + 22px)}
body.cls-woocommerce .cls-woo-sidebar .cls-widget{margin:0;padding:20px;border:1px solid var(--cls-line);border-radius:16px;background:#fff;box-shadow:var(--cls-shadow-soft)}
body.cls-woocommerce .cls-woo-sidebar .cls-widget__title{margin:0 0 14px;color:#0b3552;font-size:19px;line-height:1.2}
body.cls-woocommerce .cls-woo-sidebar ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
body.cls-woocommerce .cls-woo-sidebar a{color:#315a73;font-weight:700;text-decoration:none}
body.cls-woocommerce .cls-woo-sidebar a:hover{color:var(--cls-primary)}
body.cls-woocommerce .cls-woo-sidebar input,body.cls-woocommerce .cls-woo-sidebar select{width:100%;border:1px solid #cfdee7;border-radius:9px;padding:9px 10px;background:#fff}
body.cls-woocommerce .cls-woo-widget--empty p{margin:0;color:#6c8190;font-size:13px;line-height:1.55}
@media(max-width:980px){body.cls-woocommerce .cls-woo-layout{grid-template-columns:1fr}body.cls-woocommerce .cls-woo-sidebar{position:static;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
body.cls-bbpress .bbp-hub-shell,body.cls-basepress .bpress-wrap,body.cls-woocommerce .woocommerce,body.cls-woocommerce .wc-block-components-main{font-family:var(--cls-font)!important}

/* ========================================================================
 * Nova 4.3 hardening — desktop nav and WordPress admin bar responsiveness
 * ======================================================================== */
/* A desktop viewport must never expose the canvas/hamburger navigation. */
@media (min-width:1025px){
  .cls-mobile-toggle{display:none!important;visibility:hidden!important;pointer-events:none!important}
  .cls-header__inner{
    display:grid!important;
    grid-template-columns:minmax(205px,1fr) auto minmax(205px,1fr)!important;
    align-items:center!important;
  }
  .cls-brand{justify-self:start!important}
  .cls-nav{
    display:block!important;
    position:static!important;
    inset:auto!important;
    width:auto!important;
    max-width:none!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    justify-self:center!important;
  }
  .cls-nav .cls-menu{display:flex!important;align-items:center!important;justify-content:center!important}
  .cls-nav .cls-menu>li>a,.cls-nav .cls-submenu-toggle{padding-inline:9px}
  .cls-nav .sub-menu{position:absolute!important;display:block;opacity:0;visibility:hidden;transform:translateY(7px)}
  .cls-nav .menu-item-has-children:hover>.sub-menu,
  .cls-nav .menu-item-has-children:focus-within>.sub-menu,
  .cls-nav .menu-item-has-children.is-open>.sub-menu{opacity:1;visibility:visible;transform:none}
  .cls-header__actions{justify-self:end!important}
}



/* ========================================================================
 * Nova 4.3.1 — configurable topbar + breadcrumb inside Display Page
 * ======================================================================== */
.cls-topbar__center:empty{display:block}
.cls-topbar__right .cls-topbar__menu{justify-content:flex-end}
.cls-topbar__menu a{font-family:var(--cls-font);font-size:12px;letter-spacing:.01em}

.cls-display-breadcrumbs{
  display:flex;
  align-items:center;
  gap:8px;
  margin:20px 0 0;
  color:rgba(225,245,252,.78);
  font-size:12px;
  line-height:1.35;
}
.cls-display-breadcrumbs a{color:#fff;text-decoration:none;font-weight:700}
.cls-display-breadcrumbs a:hover{color:#7fe8ff}
.cls-display-breadcrumbs .cls-breadcrumb-sep{color:rgba(255,255,255,.48)}
.cls-display-breadcrumbs .cls-breadcrumb-current{color:rgba(225,245,252,.82)}
.cls-breadcrumb-orbit{
  position:relative;
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:inline-grid;
  place-items:center;
  border:1px solid rgba(127,232,255,.55);
  border-radius:50%;
  box-shadow:0 0 0 4px rgba(18,189,233,.06);
}
.cls-breadcrumb-orbit:before,
.cls-breadcrumb-orbit:after{
  content:"";
  position:absolute;
  inset:-5px;
  border-radius:50%;
  border:1px solid rgba(127,232,255,.34);
  animation:clsBreadcrumbOrbit 2.2s ease-out infinite;
}
.cls-breadcrumb-orbit:after{animation-delay:1.1s}
.cls-breadcrumb-orbit>span{width:5px;height:5px;border-radius:50%;background:#7fe8ff;box-shadow:0 0 12px rgba(127,232,255,.92)}
@keyframes clsBreadcrumbOrbit{
  0%{transform:scale(.55);opacity:.9}
  75%,100%{transform:scale(1.55);opacity:0}
}
@media (prefers-reduced-motion:reduce){.cls-breadcrumb-orbit:before,.cls-breadcrumb-orbit:after{animation:none}}

/* 4.4 — desktop dropdown arrows stay attached to their menu label. */
@media (min-width:1025px){
  .cls-nav .cls-menu>li.menu-item-has-children{display:flex!important;align-items:center!important;position:relative!important}
  .cls-nav .cls-menu>li.menu-item-has-children>a{padding-right:4px!important}
  .cls-nav .cls-submenu-trigger{position:static!important;inset:auto!important;transform:none!important;display:inline-grid!important;place-items:center!important;width:22px!important;height:28px!important;margin:0 6px 0 -2px!important;flex:0 0 22px!important;border-radius:7px!important}
  .cls-nav .cls-submenu-trigger i{display:block!important;margin:0!important}
  .cls-nav .cls-menu>li>.cls-submenu-toggle{display:inline-flex!important;align-items:center!important;gap:7px!important;padding-left:9px!important;padding-right:9px!important}
  .cls-nav .cls-submenu-toggle i{margin-left:2px!important}
}

/* ========================================================================
 * Nova 4.5 — Gutenberg Studio full-page canvas
 * The Studio templates own the entire content area: no shell/card around them.
 * ======================================================================== */
.cls-main--studio{
  width:100%;max-width:none!important;margin:0!important;padding:0!important;
  background:#fff!important;overflow:clip;
}
.cls-main--studio .cls-studio-page-canvas,
.cls-main--studio .cls-studio-content,
.cls-main--studio .entry-content{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
}
.cls-main--studio .cls-studio-content>.wp-block-group{
  width:100%!important;max-width:none!important;margin:0!important;
}
.cls-main--studio .cls-studio-content .alignwide,
.cls-main--studio .cls-studio-content .alignfull{max-width:none!important;width:100%!important;margin-inline:0!important}


/* 4.6.4 — never let the Cantarell hardening override Font Awesome glyphs. */
body.cls-bbpress :is(i.fa,i.fas,i.far,i.fa-solid,i.fa-regular),
body.cls-bbpress :is(.fa,.fas,.far,.fa-solid,.fa-regular)::before,
body.cls-bbpress :is(.fa,.fas,.far,.fa-solid,.fa-regular)::after{font-family:"Font Awesome 6 Free"!important;font-style:normal!important}
body.cls-bbpress :is(i.fas,i.fa-solid),body.cls-bbpress :is(.fas,.fa-solid)::before{font-weight:900!important}
body.cls-bbpress :is(i.far,i.fa-regular),body.cls-bbpress :is(.far,.fa-regular)::before{font-weight:400!important}
body.cls-bbpress :is(i.fab,i.fa-brands),body.cls-bbpress :is(.fab,.fa-brands)::before,body.cls-bbpress :is(.fab,.fa-brands)::after{font-family:"Font Awesome 6 Brands"!important;font-style:normal!important;font-weight:400!important}


/* 4.6.4 — final alignment / footer / bbPress icon hardening ---------------- */
:root{--cls-content:1180px}
.cls-footer{font-family:var(--cls-font)!important}
.cls-footer,.cls-footer p,.cls-footer a,.cls-footer-menu a,.cls-footer h3,.cls-footer__legal strong,.cls-footer__bottom{font-size:14px!important}

/* Gutenberg Studio pages share one visual axis with Home / Joomla / WordPress. */
.cls-main--studio .cls-studio-content,
.clsgs-studio-page,
.clsgs-about-page,
.clsgs-product-page,
.clsgs-joomla-page,
.clsgs-platform-page{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
.clsgs-about-section:before,.clsgs-product-panel:before,.clsgs-sitewide-band:before{content:none!important;display:none!important}
.clsgs-about-section,.clsgs-product-panel,.clsgs-sitewide-band{border-left:0!important}
.clsgs-about-section>.wp-block-group,
.clsgs-product-panel>.wp-block-group,
.clsgs-sitewide-band>.wp-block-group,
.clsgs-sitewide-band>.wp-block-columns,
.clsgs-sitewide-band>.clsgs-rich-body,
.clsgs-band>.wp-block-columns,
.clsgs-band>.wp-block-group,
.clsgs-band>.clsgs-tech-orbit,
.clsgs-band>.wp-block-buttons,
.clsgs-band>.clsgs-band__eyebrow,
.clsgs-band>.clsgs-band__title,
.clsgs-band>.clsgs-band__lead{width:min(calc(100% - 40px),1180px)!important;max-width:var(--cls-content,1180px)!important;margin-left:auto!important;margin-right:auto!important}

/* A technology/ecosystem band common to detailed WordPress/phpBB pages. */
.clsgs-platform-detail-tech{background:radial-gradient(circle at 90% 8%,rgba(18,189,233,.25),transparent 28%),linear-gradient(120deg,#063b59,#087996)!important;color:#fff!important}
.clsgs-platform-detail-tech .clsgs-band__eyebrow,.clsgs-platform-detail-tech .clsgs-band__title,.clsgs-platform-detail-tech .clsgs-band__lead{color:#fff!important}
.clsgs-platform-detail-tech .clsgs-neo-card{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.15)!important;box-shadow:none!important}
.clsgs-platform-detail-tech .clsgs-neo-card__title,.clsgs-platform-detail-tech .clsgs-neo-card__text{color:#fff!important}
.clsgs-platform-detail-tech .clsgs-neo-card__icon{background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.15)!important;color:#6ee5ff!important}

/* Preserve FA6 glyph fonts after the global Cantarell rule, including legacy FA classes in bbPress. */
body.cls-bbpress i[class^="fa"],body.cls-bbpress i[class*=" fa"],body.cls-bbpress .fa:before,body.cls-bbpress .fas:before,body.cls-bbpress .far:before,body.cls-bbpress .fa-solid:before,body.cls-bbpress .fa-regular:before{font-family:"Font Awesome 6 Free"!important;font-style:normal!important}
body.cls-bbpress .fas:before,body.cls-bbpress .fa-solid:before,body.cls-bbpress i.fas,body.cls-bbpress i.fa-solid,body.cls-bbpress i.fa{font-weight:900!important}
body.cls-bbpress .fab:before,body.cls-bbpress .fa-brands:before,body.cls-bbpress i.fab,body.cls-bbpress i.fa-brands{font-family:"Font Awesome 6 Brands"!important;font-weight:400!important}
body.cls-bbpress .bbp-account-link i{display:inline-flex!important;width:20px!important;justify-content:center!important;margin-right:8px!important}


/* ========================================================================
 * Nova 4.6.6 — Gutenberg pages use the exact same width contract as Home.
 * --cls-content is the single source of truth from Appearance > Customize.
 * ======================================================================== */
.cls-main--studio{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
  background:#fff!important;overflow:clip;
}
.cls-main--studio .cls-studio-page-canvas{
  width:min(calc(100% - 40px),var(--cls-content,1180px))!important;
  max-width:var(--cls-content,1180px)!important;
  margin:0 auto!important;padding:0!important;
}
.cls-main--studio .cls-studio-content,
.cls-main--studio .entry-content{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
}

/* Once the page canvas itself owns the Home width, inner Studio bands must not
   calculate desktop gutters from 100vw again. */
.cls-main--studio .clsgs-about-page>.wp-block-group,
.cls-main--studio .clsgs-product-page>.wp-block-group,
.cls-main--studio .clsgs-band{
  width:100%!important;max-width:none!important;
  padding-left:clamp(24px,4vw,48px)!important;
  padding-right:clamp(24px,4vw,48px)!important;
}
.cls-main--studio .clsgs-sitewide-band{padding-left:0!important;padding-right:0!important}
.cls-main--studio .clsgs-sitewide-band>.clsgs-sitewide-shell{width:100%!important;max-width:none!important}
.cls-main--studio .clsgs-band>.wp-block-columns,
.cls-main--studio .clsgs-band>.wp-block-group,
.cls-main--studio .clsgs-band>.clsgs-tech-orbit,
.cls-main--studio .clsgs-band>.wp-block-buttons,
.cls-main--studio .clsgs-band>.clsgs-band__eyebrow,
.cls-main--studio .clsgs-band>.clsgs-band__title,
.cls-main--studio .clsgs-band>.clsgs-band__lead{
  width:100%!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;
}
@media(max-width:720px){
  .cls-main--studio .cls-studio-page-canvas{width:min(calc(100% - 24px),var(--cls-content,1180px))!important}
  .cls-main--studio .clsgs-about-page>.wp-block-group,
  .cls-main--studio .clsgs-product-page>.wp-block-group,
  .cls-main--studio .clsgs-band{padding-left:20px!important;padding-right:20px!important}
  .cls-main--studio .clsgs-sitewide-band{padding-left:0!important;padding-right:0!important}
}

/* ========================================================================
 * CodeLinSoft Nova 4.6.7 — fluid full-size site contract
 * ======================================================================== */
:root{--cls-gutter:clamp(20px,4vw,72px)}

/* The whole theme is fluid now: header, Home, pages, component shells and
   footer use the viewport width with one shared responsive gutter. */
.cls-shell,
.cls-topbar .cls-shell,
.cls-header .cls-shell,
.cls-search-panel .cls-shell{
  width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;
  padding-left:var(--cls-gutter)!important;padding-right:var(--cls-gutter)!important;
}
.cls-platform{padding-left:var(--cls-gutter)!important;padding-right:var(--cls-gutter)!important}
.cls-main--studio .cls-studio-page-canvas{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
}
.cls-main--studio .clsgs-about-page>.wp-block-group,
.cls-main--studio .clsgs-product-page>.wp-block-group,
.cls-main--studio .clsgs-band{
  padding-left:var(--cls-gutter)!important;padding-right:var(--cls-gutter)!important;
}
.cls-main--studio .clsgs-sitewide-band{padding-left:0!important;padding-right:0!important}
.cls-main--studio .clsgs-sitewide-band>.clsgs-sitewide-shell{
  width:100%!important;max-width:none!important;
  padding-left:var(--cls-gutter)!important;padding-right:var(--cls-gutter)!important;
}
.cls-main--studio .clsgs-band>.wp-block-columns,
.cls-main--studio .clsgs-band>.wp-block-group,
.cls-main--studio .clsgs-band>.clsgs-tech-orbit,
.cls-main--studio .clsgs-band>.wp-block-buttons,
.cls-main--studio .clsgs-band>.clsgs-band__eyebrow,
.cls-main--studio .clsgs-band>.clsgs-band__title,
.cls-main--studio .clsgs-band>.clsgs-band__lead{
  width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;
}
body.cls-basepress .bpress-wrap{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;padding-left:var(--cls-gutter)!important;padding-right:var(--cls-gutter)!important}

/* Home community numbers get enough room on large screens and remain readable. */
.cls-community-grid{grid-template-columns:minmax(320px,1.15fr) minmax(360px,.9fr) minmax(300px,.75fr)}
.cls-stats{gap:10px}
.cls-stats b{font-size:clamp(20px,1.7vw,30px);line-height:1.1;color:#082f49}
.cls-stats span{font-size:11px;line-height:1.3;color:#6f8798}

/* Hash targets remain visible below the sticky header. */
:where(.cls-main,.entry-content,.cls-content) :is(h1,h2,h3,h4,h5,h6)[id],
:where(.cls-main,.entry-content,.cls-content) [id].clsgs-anchor,
:where(.cls-main,.entry-content,.cls-content) [id].clsgs-anchor-target{scroll-margin-top:calc(var(--cls-header-height,82px) + 42px)}

@media(max-width:1100px){.cls-community-grid{grid-template-columns:1fr}}
@media(max-width:720px){
  :root{--cls-gutter:clamp(16px,4vw,24px)}
  .cls-shell,.cls-topbar .cls-shell,.cls-header .cls-shell,.cls-search-panel .cls-shell{width:100%!important;padding-left:var(--cls-gutter)!important;padding-right:var(--cls-gutter)!important}
  .cls-main--studio .cls-studio-page-canvas{width:100%!important;max-width:none!important}
  .cls-main--studio .clsgs-about-page>.wp-block-group,
  .cls-main--studio .clsgs-product-page>.wp-block-group,
  .cls-main--studio .clsgs-band{padding-left:var(--cls-gutter)!important;padding-right:var(--cls-gutter)!important}
  .cls-main--studio .clsgs-sitewide-band{padding-left:0!important;padding-right:0!important}
}

/* ========================================================================
 * CodeLinSoft Nova 4.6.8 — Gutenberg Home must keep the PHP Home geometry
 * ======================================================================== */
.cls-home--gutenberg{width:100%;max-width:none;margin:0;padding:0;overflow:hidden}
.cls-home--gutenberg .clsgs-home-template,
.cls-home--gutenberg .clsgs-home-template>.wp-block-group__inner-container{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
.cls-home--gutenberg .clsgs-home-template>.wp-block-group__inner-container>*{max-width:none!important;margin-left:0!important;margin-right:0!important}
.cls-home--gutenberg .clsgs-home-template .wp-block-columns{margin-top:0!important;margin-bottom:0!important}
.cls-home--gutenberg .clsgs-home-template .wp-block-column{min-width:0}
.cls-home--gutenberg .clsgs-home-template :is(.cls-hero-grid,.cls-product-grid,.cls-platforms,.cls-mini-features,.cls-hero-actions,.cls-community-grid,.cls-community-intro,.cls-section-head)>.wp-block-group__inner-container,
.cls-home--gutenberg .clsgs-home-template .cls-feature-strip>.cls-shell>.wp-block-group__inner-container{display:contents!important}
.cls-home--gutenberg .clsgs-home-template .cls-hero-grid{display:grid!important;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)!important;gap:34px!important;align-items:center!important;min-height:430px!important;width:100%!important;max-width:none!important;padding:34px var(--cls-gutter,clamp(20px,4vw,72px))!important}
.cls-home--gutenberg .clsgs-home-template .cls-hero-copy,.cls-home--gutenberg .clsgs-home-template .cls-hero-visual{width:auto!important;max-width:none!important;margin:0!important}
.cls-home--gutenberg .clsgs-home-template .cls-eyebrow{margin:0 0 9px!important}
.cls-home--gutenberg .clsgs-home-template .cls-hero-copy h1{margin:0!important;max-width:660px!important;font-size:clamp(44px,4.9vw,70px)!important;line-height:1.02!important;letter-spacing:-.045em!important}
.cls-home--gutenberg .clsgs-home-template .cls-hero-copy h1 em{font-style:normal!important;color:#13c0ef!important}
.cls-home--gutenberg .clsgs-home-template .cls-hero-actions{display:flex!important;gap:14px!important;flex-wrap:wrap!important;margin:24px 0 25px!important}
.cls-home--gutenberg .clsgs-home-template .cls-mini-features{display:flex!important;gap:28px!important;flex-wrap:wrap!important;align-items:center!important}
.cls-home--gutenberg .clsgs-home-template .clsgs-home-mini-item{display:flex!important;align-items:center!important;gap:9px!important;flex:0 0 auto!important;margin:0!important}
.cls-home--gutenberg .clsgs-home-template .cls-product-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;width:100%!important;max-width:none!important;margin:0!important}
.cls-home--gutenberg .clsgs-home-template .clsgs-home-product-card{height:100%!important;min-height:260px!important;position:relative!important;padding:17px 17px 64px!important;margin:0!important}
.cls-home--gutenberg .clsgs-home-template .clsgs-home-card-actions{position:absolute!important;left:17px!important;bottom:15px!important;margin:0!important}
.cls-home--gutenberg .clsgs-home-template .cls-platforms{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important;width:100%!important;max-width:none!important;margin:0!important}
.cls-home--gutenberg .clsgs-home-template .cls-platform{display:flex!important;gap:24px!important;align-items:center!important;min-height:185px!important;margin:0!important;padding-left:var(--cls-gutter)!important;padding-right:var(--cls-gutter)!important}
.cls-home--gutenberg .clsgs-home-template .clsgs-home-features-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:20px!important;width:100%!important;max-width:none!important;margin:0!important;padding:13px var(--cls-gutter)!important}
.cls-home--gutenberg .clsgs-home-template .clsgs-home-feature{display:flex!important;gap:11px!important;align-items:center!important;margin:0!important}
.cls-home--gutenberg .clsgs-home-template .cls-community-grid{display:grid!important;grid-template-columns:minmax(320px,1.15fr) minmax(360px,.9fr) minmax(300px,.75fr)!important;gap:28px!important;align-items:center!important;width:100%!important;max-width:none!important;margin:0!important;padding-left:var(--cls-gutter)!important;padding-right:var(--cls-gutter)!important}
.cls-home--gutenberg .clsgs-home-template .cls-community-intro{display:flex!important;align-items:center!important;gap:19px!important;margin:0!important}
@media(max-width:1100px){.cls-home--gutenberg .clsgs-home-template .cls-hero-grid{grid-template-columns:1fr!important}.cls-home--gutenberg .clsgs-home-template .cls-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.cls-home--gutenberg .clsgs-home-template .cls-platforms,.cls-home--gutenberg .clsgs-home-template .cls-community-grid{grid-template-columns:1fr!important}.cls-home--gutenberg .clsgs-home-template .cls-hero-visual{max-width:760px!important}}
@media(max-width:720px){.cls-home--gutenberg .clsgs-home-template .cls-hero-grid{padding:28px var(--cls-gutter)!important}.cls-home--gutenberg .clsgs-home-template .cls-product-grid{grid-template-columns:1fr!important}.cls-home--gutenberg .clsgs-home-template .clsgs-home-features-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.cls-home--gutenberg .clsgs-home-template .cls-platform{align-items:flex-start!important}}
.cls-home--gutenberg .clsgs-home-template .clsgs-home-product-card .wp-block-buttons{position:absolute!important;left:17px!important;bottom:15px!important;margin:0!important}


/* ========================================================================
 * Nova 4.6.9 — centred article/blog composition and themed sidebar
 * ======================================================================== */
body .cls-shell.cls-blog-shell{width:min(calc(100% - 40px),1320px)!important;max-width:1320px!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}
.cls-blog-main{background:linear-gradient(180deg,#f7fbfe 0%,#f1f7fb 100%)!important}
.cls-blog-layout{display:grid!important;grid-template-columns:minmax(0,920px) minmax(280px,330px)!important;gap:28px!important;justify-content:center!important;align-items:start!important}
.cls-blog-layout--single .cls-article-card{width:100%!important;max-width:none!important;margin:0!important;padding:clamp(24px,3vw,42px)!important}
.cls-blog-layout--single .cls-featured{display:flex;justify-content:center;margin:0 0 30px!important;padding:14px;border:1px solid #e0ebf2;border-radius:18px;background:linear-gradient(180deg,#fff,#f6fbfe)}
.cls-blog-layout--single .cls-featured img{width:auto!important;max-width:100%!important;max-height:600px!important;object-fit:contain!important;border-radius:14px!important}
.cls-blog-layout--single .cls-article-content,.cls-blog-layout--single .cls-article-footer{max-width:820px;margin-left:auto!important;margin-right:auto!important}
.cls-post-grid--blog{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important}.cls-post-grid--blog .cls-post-card--lead{grid-column:1/-1;display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(280px,.95fr);min-height:300px}.cls-post-grid--blog .cls-post-card--lead .cls-post-thumb{height:100%;aspect-ratio:auto;min-height:300px}.cls-post-grid--blog .cls-post-card--lead .cls-post-body{display:flex;flex-direction:column;justify-content:center;padding:clamp(26px,4vw,44px)}.cls-post-grid--blog .cls-post-card--lead h2{font-size:clamp(26px,3vw,38px);letter-spacing:-.035em}
.cls-blog-shell .cls-sidebar{display:grid!important;gap:16px!important;align-content:start!important}.cls-blog-shell .cls-widget{position:relative;overflow:hidden;margin:0!important;padding:21px!important;border:1px solid #cfe3ee!important;border-radius:18px!important;background:linear-gradient(180deg,#fff 0%,#f4fbff 100%)!important;box-shadow:0 13px 32px rgba(5,47,75,.065)!important}.cls-blog-shell .cls-widget:before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:linear-gradient(90deg,#0a83ef,#18c4e9)}.cls-blog-shell .cls-widget__title{margin:2px 0 15px!important;color:#093b59!important;font-size:18px!important}.cls-blog-shell .cls-widget a{color:#087fe7!important}.cls-blog-shell .cls-widget p,.cls-blog-shell .cls-widget li{color:#385b70!important}
.entry-content :is(i.fa,i.fas,i.far,i.fa-solid,i.fa-regular){font-family:"Font Awesome 6 Free"!important;font-style:normal!important}.entry-content :is(i.fas,i.fa-solid){font-weight:900!important}.entry-content :is(i.far,i.fa-regular){font-weight:400!important}.entry-content :is(i.fab,i.fa-brands){font-family:"Font Awesome 6 Brands"!important;font-style:normal!important;font-weight:400!important}
@media(max-width:980px){.cls-blog-layout{grid-template-columns:1fr!important}.cls-blog-shell .cls-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))!important}.cls-post-grid--blog .cls-post-card--lead{grid-template-columns:1fr!important}.cls-post-grid--blog .cls-post-card--lead .cls-post-thumb{min-height:260px;aspect-ratio:16/9}}
@media(max-width:680px){body .cls-shell.cls-blog-shell{width:min(calc(100% - 24px),1320px)!important}.cls-post-grid--blog{grid-template-columns:1fr!important}.cls-blog-shell .cls-sidebar{grid-template-columns:1fr!important}.cls-blog-layout--single .cls-article-card{padding:20px!important}}

/* 4.7.1 — configurable footer social profiles. */
.cls-socials{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:14px}
.cls-footer .cls-socials__link{display:grid!important;place-items:center;width:36px;height:36px;margin:0!important;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.055);color:#dff4ff!important;text-decoration:none!important;transition:transform .16s ease,background .16s ease,border-color .16s ease,color .16s ease}
.cls-footer .cls-socials__link:hover,.cls-footer .cls-socials__link:focus-visible{transform:translateY(-2px);background:rgba(18,189,233,.16);border-color:rgba(98,216,242,.44);color:#7fe8ff!important;outline:none}
.cls-footer .cls-socials__link i{font-size:16px}

/* 4.7.2 — preserve Font Awesome icon fonts inside footer.
 * The global `.cls-footer * { font-family: var(--cls-font) !important; }`
 * rule is intentionally broad for typography, but must not replace icon fonts.
 */
.cls-footer :is(i.fa,i.fas,i.far,i.fa-solid,i.fa-regular),
.cls-footer :is(.fa,.fas,.far,.fa-solid,.fa-regular)::before,
.cls-footer :is(.fa,.fas,.far,.fa-solid,.fa-regular)::after{
  font-family:"Font Awesome 6 Free"!important;
  font-style:normal!important;
}
.cls-footer :is(i.fas,i.fa-solid),
.cls-footer :is(.fas,.fa-solid)::before,
.cls-footer :is(.fas,.fa-solid)::after{font-weight:900!important}
.cls-footer :is(i.far,i.fa-regular),
.cls-footer :is(.far,.fa-regular)::before,
.cls-footer :is(.far,.fa-regular)::after{font-weight:400!important}
.cls-footer :is(i.fab,i.fa-brands),
.cls-footer :is(.fab,.fa-brands)::before,
.cls-footer :is(.fab,.fa-brands)::after{
  font-family:"Font Awesome 6 Brands"!important;
  font-style:normal!important;
  font-weight:400!important;
}

/* 4.7.2 — authoritative Font Awesome family restoration.
 * Nova intentionally applies Cantarell with !important to broad UI trees.
 * Font Awesome draws glyphs from ::before/::after PUA codepoints, so the icon
 * family must win on both the element and its pseudo-elements everywhere. */
:is(i.fa,i.fas,i.far,i.fa-solid,i.fa-regular),
:is(.fa,.fas,.far,.fa-solid,.fa-regular)::before,
:is(.fa,.fas,.far,.fa-solid,.fa-regular)::after{
  font-family:"Font Awesome 6 Free"!important;
  font-style:normal!important;
}
:is(i.fas,i.fa-solid),:is(.fas,.fa-solid)::before,:is(.fas,.fa-solid)::after{font-weight:900!important}
:is(i.far,i.fa-regular),:is(.far,.fa-regular)::before,:is(.far,.fa-regular)::after{font-weight:400!important}
:is(i.fab,i.fa-brands),
:is(.fab,.fa-brands)::before,
:is(.fab,.fa-brands)::after{
  font-family:"Font Awesome 6 Brands"!important;
  font-style:normal!important;
  font-weight:400!important;
}


/* ========================================================================
 * Nova 4.7.6 — icon isolation
 * ========================================================================
 * The theme styles the bbPress shell, never TinyMCE internals. TinyMCE icon
 * fonts are supplied by WordPress/the dedicated PHP bridge in functions.php.
 */
.cls-footer .cls-social-icon{
  display:block;
  width:17px;
  height:17px;
  flex:0 0 17px;
  color:currentColor;
}

/* ========================================================================
 * Nova 4.7.9 — native admin-bar isolation and viewport-safe right off-canvas
 * ======================================================================== */
.cls-download-mobile{display:none!important}
.cls-offcanvas-head,.cls-offcanvas-widgets{display:none}

/* WordPress owns #wpadminbar. Nova never changes its display, flex model,
 * dimensions or overflow. Only the sticky site header is offset beneath it. */
@media screen and (min-width:783px){body.admin-bar .cls-header.is-sticky{top:32px!important}}
@media screen and (max-width:782px){body.admin-bar .cls-header.is-sticky{top:46px!important}}

/* Tablet + phone: genuine off-canvas navigation from the right. */
@media (max-width:1100px){
  .cls-mobile-toggle{display:grid!important;place-items:center!important}
  .cls-offcanvas-portal .cls-nav{
    display:flex!important;
    flex-direction:column!important;
    position:fixed!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:auto!important;
    width:min(88vw,390px)!important;
    max-width:390px!important;
    height:100dvh!important;
    margin:0!important;
    padding:0 0 26px!important;
    border:0!important;
    border-left:1px solid #d8e6ef!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:-22px 0 55px rgba(5,47,75,.22)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    transform:translateX(105%)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:transform .24s ease,opacity .2s ease,visibility .2s ease!important;
    z-index:10050!important;
  }
  .cls-offcanvas-portal .cls-nav.is-open{
    transform:translateX(0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  body.admin-bar .cls-offcanvas-portal .cls-nav{top:32px!important;height:calc(100dvh - 32px)!important}

  .cls-offcanvas-head{
    position:sticky;top:0;z-index:3;
    display:flex!important;align-items:center;justify-content:space-between;gap:16px;
    min-height:70px;padding:14px 18px;
    border-bottom:1px solid #e2edf4;background:rgba(255,255,255,.97);backdrop-filter:blur(12px)
  }
  .cls-offcanvas-head strong{color:#0b3552;font-size:18px;letter-spacing:-.01em}
  .cls-offcanvas-close{display:grid;place-items:center;width:40px;height:40px;border:1px solid #d8e6ef;border-radius:11px;background:#fff;color:#0b3552;cursor:pointer}

  .cls-offcanvas-portal .cls-nav .cls-menu{display:block!important;width:100%!important;margin:0!important;padding:12px 14px!important}
  .cls-offcanvas-portal .cls-nav .cls-menu>li{position:relative!important;width:100%!important;border-bottom:1px solid #edf3f7}
  .cls-offcanvas-portal .cls-nav .cls-menu>li>a,
  .cls-offcanvas-portal .cls-nav .cls-menu>li>.cls-submenu-toggle{
    display:flex!important;align-items:center!important;justify-content:flex-start!important;
    width:100%!important;min-height:48px!important;padding:11px 46px 11px 12px!important;
    color:#12344e!important;white-space:normal!important
  }
  .cls-offcanvas-portal .cls-nav .cls-menu>li>a:after{display:none!important}
  .cls-offcanvas-portal .cls-nav .cls-submenu-trigger{
    position:absolute!important;right:4px!important;top:6px!important;z-index:2!important;
    display:grid!important;place-items:center!important;width:38px!important;height:38px!important;
    margin:0!important;border:0!important;border-radius:9px!important;background:#f2f8fc!important;color:#0b5f8e!important
  }
  .cls-offcanvas-portal .cls-nav .sub-menu{
    position:static!important;display:none!important;width:100%!important;min-width:0!important;
    margin:0!important;padding:0 8px 10px 20px!important;border:0!important;border-radius:0!important;
    background:transparent!important;box-shadow:none!important;opacity:1!important;visibility:visible!important;transform:none!important
  }
  .cls-offcanvas-portal .cls-nav .menu-item-has-children.is-open>.sub-menu{display:block!important}
  .cls-offcanvas-portal .cls-nav .sub-menu a{white-space:normal!important;padding:10px 12px!important}

  .cls-offcanvas-widgets{display:block!important;margin-top:auto;padding:14px 18px 0;border-top:1px solid #e2edf4}
  .cls-offcanvas-widget{margin:0 0 14px;padding:14px;border:1px solid #d8e6ef;border-radius:14px;background:#f8fbfd;color:#23465d}
  .cls-offcanvas-widget__title{margin:0 0 9px;color:#0b3552;font-size:15px}
  .cls-offcanvas-widget :is(input,select,textarea,button){max-width:100%}
  .cls-offcanvas-widget ul{margin:0;padding-left:18px}

  /* Off-canvas layers must stay in the same header stacking context.
   * Do not blur the overlay itself: some Android browsers composite a body-level
   * backdrop-filter above fixed descendants and blur the drawer as well. */
  .cls-offcanvas-portal{position:fixed;inset:0;z-index:99980!important;pointer-events:none;overflow:visible}
  .cls-offcanvas-portal .cls-offcanvas-backdrop{
    position:fixed;inset:0;z-index:10040!important;
    background:rgba(3,31,48,.52)!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease
  }
  .cls-offcanvas-portal .cls-offcanvas-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto}
  .cls-offcanvas-portal .cls-nav{z-index:10050!important;filter:none!important;-webkit-filter:none!important}
  .cls-offcanvas-portal .cls-nav.is-open,
  .cls-offcanvas-portal .cls-nav.is-open *{filter:none!important;-webkit-filter:none!important}
  .cls-offcanvas-portal .cls-offcanvas-backdrop{z-index:1!important}
  .cls-offcanvas-portal .cls-nav{z-index:2!important}
  body.cls-offcanvas-open{overflow:hidden!important}
  html,body{max-width:100%!important;overflow-x:clip!important}
  @supports not (overflow:clip){html,body{overflow-x:hidden!important}}
}
@media screen and (max-width:782px){body.admin-bar .cls-offcanvas-portal .cls-nav{top:46px!important;height:calc(100dvh - 46px)!important}}

/* Header Download remains on tablet/desktop. On phones it is the last menu item
 * in the same primary menu used by site, login/registration and maintenance. */
@media (min-width:768px) and (max-width:1100px){.cls-header__actions .cls-download-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:8px}}
@media (max-width:767px){
  .cls-header__actions .cls-download-btn{display:none!important}
  .cls-menu>.cls-download-mobile{display:block!important;width:100%!important;border-bottom:0!important;margin-top:8px!important}
  .cls-menu>.cls-download-mobile>a{
    display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;
    width:100%!important;min-height:46px!important;padding:11px 16px!important;
    border-radius:10px!important;background:linear-gradient(135deg,#0b8dff,#0875ed)!important;
    color:#fff!important;font-weight:800!important;text-align:center!important;box-shadow:0 8px 20px rgba(7,135,249,.18)!important
  }
}

/* Front-end bbPress may style the editor frame, never TinyMCE internals or its
 * icon family. WordPress/TinyMCE keeps full ownership of .mce-* controls. */
body.cls-bbpress .wp-editor-wrap{font-family:initial}
body.cls-bbpress .wp-editor-wrap :is(.mce-container,.mce-container-body,.mce-toolbar-grp,.mce-toolbar,.mce-btn,.mce-btn button,.mce-ico,[class^="mce-i-"],[class*=" mce-i-"]){text-transform:none;letter-spacing:normal}
body.cls-bbpress .wp-editor-wrap .dashicons,
body.cls-bbpress .wp-editor-wrap .dashicons-before::before{font-family:dashicons!important}


/* ========================================================================
 * Nova 4.8.0 — shared account dropdown + Cantarell off-canvas
 * ======================================================================== */
.cls-account-menu{position:relative;display:flex;align-items:center;justify-content:center}
.cls-account-toggle{
  width:38px;height:38px;padding:0;border:1px solid #dce9f1;border-radius:10px;
  background:#fff;color:#12344e;display:grid;place-items:center;cursor:pointer;
  font-family:"Cantarell",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
.cls-account-toggle:hover,.cls-account-toggle:focus-visible{border-color:#9fd6f7;color:var(--cls-primary);outline:none;box-shadow:0 0 0 3px rgba(7,135,249,.10)}
.cls-account-avatar{display:block;width:28px;height:28px;border-radius:50%;object-fit:cover}
.cls-account-dropdown{
  position:absolute;top:calc(100% + 10px);right:0;z-index:1200;
  width:min(290px,calc(100vw - 24px));padding:10px;
  border:1px solid #d8e6ef;border-radius:15px;background:#fff;
  box-shadow:0 22px 55px rgba(5,47,75,.20);
  color:#173b53;font-family:"Cantarell",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
.cls-account-dropdown[hidden]{display:none!important}
.cls-account-dropdown.is-open{display:block!important}
.cls-account-dropdown__head{padding:9px 10px 12px;border-bottom:1px solid #e7f0f5}
.cls-account-dropdown__head strong{display:block;color:#0b3552;font-size:15px;line-height:1.25}
.cls-account-dropdown__head span{display:block;margin-top:3px;color:#6a8597;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.cls-account-system-links,.cls-account-extra{list-style:none;margin:0;padding:7px 0}
.cls-account-custom-links{border-top:1px solid #e7f0f5}
.cls-account-dropdown li{margin:0;padding:0}
.cls-account-dropdown a{
  display:flex;align-items:center;gap:10px;min-height:42px;padding:9px 10px;
  border-radius:9px;color:#173b53!important;text-decoration:none!important;
  font-family:"Cantarell",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-size:14px;font-weight:700;line-height:1.3
}
.cls-account-dropdown a:hover,.cls-account-dropdown a:focus-visible{background:#eef8ff;color:#0878c9!important;outline:none}
.cls-account-dropdown a i{width:18px;text-align:center;color:#0b78b8}
.cls-account-dropdown__footer{padding-top:7px;border-top:1px solid #e7f0f5}
.cls-account-dropdown__footer a{color:#8c3041!important}
.cls-account-dropdown__footer a i{color:#a94356}

/* Keep the drawer typography identical to the rest of Nova without touching
 * Font Awesome's own icon family. Form controls inherit Cantarell as well. */
.cls-offcanvas-portal .cls-nav,
.cls-offcanvas-portal .cls-offcanvas-head,
.cls-offcanvas-portal .cls-offcanvas-widgets,
.cls-offcanvas-portal .cls-offcanvas-widget,
.cls-offcanvas-portal .cls-menu a,
.cls-offcanvas-portal .cls-menu button,
.cls-offcanvas-portal :is(input,select,textarea){
  font-family:"Cantarell",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important
}

@media(max-width:767px){
  .cls-account-toggle{width:36px;height:36px}
  .cls-account-dropdown{right:0;width:min(290px,calc(100vw - 24px))}
}

/* Nova 4.8.1 — shared inline GTranslate footer switcher */
.cls-footer__translate .gtranslate_wrapper{display:block;min-height:40px;max-width:100%}
.cls-footer__translate .gtranslate_wrapper *{max-width:100%;box-sizing:border-box}



/* ========================================================================
 * Nova 4.8.2 — universal auth-aware menu visibility
 * ======================================================================== */
/* PHP removes these menu items before output. These rules are a defensive
 * fallback for manually-rendered links/widgets using the same utility classes. */
.cls-user-logged-out .cls-logged-in-only{display:none!important}
.cls-user-logged-in .cls-logged-out-only{display:none!important}
