/* NovaSix 1.5.0 – Unified Joomla 6 Frontend Design System (GPL-2.0-or-later)
   Template Style parameters generate validated --nx-theme-* variables.
   Applies to Joomla native outputs and third-party markup using common Joomla classes.
   .nx-hero-custom/.nx-features-custom/.nx-cta-custom keep their explicit module colors. */

/* 1. Fundamental text and surfaces. */
body.nx-body{font-size:var(--nx-theme-body-size,16px);line-height:var(--nx-theme-line-height,1.7);color:var(--nx-theme-text,#4f5a6b)}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :is(h1,h2,h3,h4,h5,h6){font-family:var(--nx-theme-heading-font,inherit);color:var(--nx-theme-heading,#171c2d)}
.nx-body .nx-features:not(.nx-features-custom) :is(h2,h3){font-family:var(--nx-theme-heading-font,inherit);color:var(--nx-theme-heading,#171c2d)}
.nx-body :is(.nx-content-card,.nx-component .card,.nx-module-card,.nx-sidebar .moduletable,.nx-component .blog-item){background:var(--nx-theme-card-bg,#fff);border-color:var(--nx-theme-border,#e3e6ed)}
.nx-body .nx-component :is(p,li,dd,.article-info,.form-text,.text-muted,.small){color:inherit}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :is(h1,.h1){font-size:clamp(1.9rem,4.6vw,var(--nx-theme-h1-size,56px));line-height:1.16}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :is(h2,.h2){font-size:clamp(1.55rem,3.4vw,var(--nx-theme-h2-size,39px));line-height:1.2}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :is(h3,.h3){font-size:clamp(1.15rem,2.1vw,var(--nx-theme-h3-size,25px));line-height:1.25}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :is(h4,.h4){font-size:1.15rem}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :is(h5,.h5){font-size:1.03rem}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :is(h6,.h6){font-size:.94rem}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) a:not([class*="btn"]):not(.nx-button):not(.page-link){color:var(--nx-theme-link,#6b35b5)}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) a:not([class*="btn"]):not(.nx-button):not(.page-link):hover{color:var(--nx-theme-link-hover,#171c2d)}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :is(.text-muted,.small,.form-text,.field-help){color:var(--nx-theme-muted,#697387)}
.nx-body .nx-component :is(.card,.well,.com-content-article,.com-contact__container){max-width:100%}
.nx-body .nx-component :is(.card-header,.card-footer){padding:1rem 1.35rem;background:var(--nx-surface);border-color:var(--nx-theme-border,#e3e6ed)}
.nx-body .nx-component :is(.card-body,.card-content){padding:clamp(1rem,2.4vw,1.65rem)}
.nx-body .nx-component :is(.card,.well,.badge,.dropdown-menu,.popover,.toast){border-radius:0}

/* 2. Common Joomla form grids, native user pages, search and contact forms. */
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :is(label,.control-label,.form-label){font-size:var(--nx-theme-label-size,14px);font-weight:650;line-height:1.45;color:var(--nx-theme-heading,#171c2d)}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="url"],input[type="tel"],input[type="number"],input[type="date"],input[type="datetime-local"],input[type="time"],input[type="file"],select,textarea,.form-control,.form-select){
  font-family:inherit;font-size:var(--nx-theme-field-size,16px);min-height:var(--nx-theme-field-height,46px);max-width:100%;
  color:var(--nx-theme-input-text,#171c2d);background:var(--nx-theme-input-bg,#fff);
  border:1px solid var(--nx-theme-input-border,#cbd2df);border-radius:0!important;
  padding:.7rem .95rem;box-shadow:none;line-height:1.5;
}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(textarea){min-height:115px;resize:vertical}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(input,textarea)::placeholder{color:var(--nx-theme-placeholder,#818a9a);opacity:1}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="url"],input[type="tel"],input[type="number"],input[type="date"],input[type="datetime-local"],input[type="time"],select,textarea,.form-control,.form-select):focus{
  border-color:var(--nx-theme-input-focus,#6b35b5);outline:2px solid transparent;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--nx-theme-input-focus,#6b35b5) 19%,transparent);
}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.form-control:disabled,.form-select:disabled,input:disabled,textarea:disabled,select:disabled){opacity:.64;cursor:not-allowed;background:var(--nx-surface)}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.form-group,.control-group,.field-calendar,.field-spacer,.form-floating){margin-block-end:var(--nx-theme-form-gap,18px)}
.nx-body .nx-component :where(.controls,.control-label,.form-control-feedback,.invalid-feedback){min-width:0}
.nx-body .nx-component .control-group .controls{margin-block-start:.5rem}
.nx-body .nx-component :is(.com-users-registration,.com-users-profile,.com-users-reset,.com-users-remind,.com-users-login,.com-contact,.com-finder,.com-search) :where(fieldset){min-width:0;max-width:100%;padding:0;margin:0 0 1.3rem;border:0}
.nx-body .nx-component :where(fieldset) legend{font-family:var(--nx-theme-heading-font,inherit);font-size:clamp(1.15rem,2.5vw,1.45rem);font-weight:740;color:var(--nx-theme-heading,#171c2d);padding:0;margin:1rem 0}
.nx-body .nx-component :where(.form-horizontal,.form-vertical,.com-users-registration__form,.com-users-reset__form,.com-users-remind__form,.com-contact__form){max-width:920px;width:100%;margin-inline:auto}
.nx-body .nx-component :where(.control-group,.form-group) :where(.controls,.input-group){min-width:0;max-width:100%}
.nx-body .nx-component :is(.input-group,.input-password-toggle){display:flex;flex-wrap:nowrap;align-items:stretch;gap:0;min-width:0;width:100%;max-width:100%}
.nx-body .nx-component .input-group > :where(.form-control,input){flex:1 1 auto;width:1%;min-width:0;margin:0}
.nx-body .nx-component .input-group > :where(.btn,button,.input-group-text){flex:0 0 auto;min-width:44px;margin:0;border-radius:0;padding:.45rem .85rem}
.nx-body .nx-component :where(input[type="checkbox"],input[type="radio"]){accent-color:var(--nx-theme-button-bg,#6b35b5);width:17px;height:17px;min-height:0;margin:0 .45rem 0 0;vertical-align:middle}
.nx-body .nx-component .form-check{display:flex;align-items:center;gap:.45rem;min-height:30px}
.nx-body .nx-component .form-check label{margin:0;font-weight:500}
.nx-body .nx-component :where(.invalid-feedback,.form-control-feedback,.text-danger){font-size:.87rem;color:#a5223c}
.nx-body .nx-component :where(.required,.star){color:#b52b46}

/* 3. Buttons: native Joomla, com_users, com_content edit, com_contact, pagination actions. */
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.btn,.button,.nx-button,button[type="submit"],input[type="submit"],input[type="button"]){
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  min-height:var(--nx-theme-button-height,48px);padding:.72rem 1.35rem;
  font-family:inherit;font-weight:700;line-height:1.35;
  font-size:var(--nx-theme-button-size,15px);
  border-radius:0!important;box-shadow:none;text-decoration:none;vertical-align:middle;
  cursor:pointer;white-space:normal;text-align:center;
}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.btn-primary,.btn-success,.button-primary,.nx-button-primary,button[type="submit"],input[type="submit"]){
  background:var(--nx-theme-button-bg,#6b35b5);color:var(--nx-theme-button-text,#fff);border:1px solid var(--nx-theme-button-bg,#6b35b5);
}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.btn-primary,.btn-success,.button-primary,.nx-button-primary,button[type="submit"],input[type="submit"]):hover{
  background:var(--nx-theme-button-hover,#171c2d);border-color:var(--nx-theme-button-hover,#171c2d);color:var(--nx-theme-button-text,#fff)
}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.btn-secondary,.btn-light,.btn-outline-secondary,.button-secondary){
  background:var(--nx-theme-button-secondary-bg,#f1edf8);color:var(--nx-theme-button-secondary-text,#41256a);border:1px solid var(--nx-theme-border,#e3e6ed)
}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.btn-secondary,.btn-light,.btn-outline-secondary,.button-secondary):hover{filter:brightness(.94)}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.btn-link){background:transparent;border:0;color:var(--nx-theme-link,#6b35b5)}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.btn-danger){background:#aa2442;border-color:#aa2442;color:#fff}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.btn:disabled,button:disabled,input:disabled){opacity:.5;cursor:not-allowed}
.nx-body :is(.nx-component,.nx-sidebar,.nx-main-top,.nx-main-bottom) :where(.btn):focus-visible{outline:3px solid var(--nx-theme-input-focus,#6b35b5);outline-offset:3px}

/* 4. Joomla lists, tables, notifications, tabs, accordions, pagination. */
.nx-body .nx-component :is(table,.table){width:100%;border-collapse:collapse;background:var(--nx-theme-card-bg,#fff);font-size:.96em}
.nx-body .nx-component :is(table,.table) :is(th,td){padding:clamp(.65rem,1.5vw,1rem);text-align:start;border-bottom:1px solid var(--nx-theme-border,#e3e6ed);vertical-align:top}
.nx-body .nx-component :is(table,.table) th{color:var(--nx-theme-heading,#171c2d);font-weight:700}
.nx-body .nx-component .table-striped > tbody > tr:nth-of-type(odd) > *{background:var(--nx-surface);color:inherit}
.nx-body .nx-component :is(.table-responsive,.com-users-profile,.com-content-category__items){max-width:100%;overflow-x:auto}
.nx-body .nx-component :is(.alert,.message,.mod-message,.joomla-alert){border:1px solid var(--nx-theme-border,#e3e6ed);border-inline-start:4px solid var(--nx-theme-button-bg,#6b35b5);background:var(--nx-surface);color:var(--nx-theme-heading,#171c2d);padding:1.15rem 1.35rem;border-radius:0}
.nx-body .nx-component :where(.alert-danger,.alert-error){background:#fff1f3;border-color:#efb1c0;border-inline-start-color:#b52b46;color:#7f1931}
.nx-body .nx-component :where(.alert-success){background:#f0f9f3;border-color:#b5ddc3;border-inline-start-color:#26794b;color:#205a39}
.nx-body .nx-component :is(.pagination,.pagination-list){display:flex;flex-wrap:wrap;gap:.45rem;margin-block:1.4rem;padding:0;list-style:none}
.nx-body .nx-component .page-link{background:var(--nx-theme-card-bg,#fff);color:var(--nx-theme-link,#6b35b5);border:1px solid var(--nx-theme-border,#e3e6ed);border-radius:0}
.nx-body .nx-component :is(.active,.current)>.page-link{background:var(--nx-theme-button-bg,#6b35b5);border-color:var(--nx-theme-button-bg,#6b35b5);color:var(--nx-theme-button-text,#fff)}
.nx-body .nx-component .nav-tabs{display:flex;flex-wrap:wrap;gap:.5rem;border-bottom:1px solid var(--nx-theme-border,#e3e6ed);list-style:none;padding:0 0 1rem;margin:0 0 1rem}
.nx-body .nx-component .nav-tabs .nav-link{display:block;padding:.65rem 1rem;border:1px solid var(--nx-theme-border,#e3e6ed);border-radius:0;color:var(--nx-theme-link,#6b35b5)}
.nx-body .nx-component .nav-tabs .nav-link.active{color:var(--nx-theme-heading,#171c2d);border-bottom:2px solid var(--nx-theme-button-bg,#6b35b5);background:var(--nx-theme-card-bg,#fff)}
.nx-body .nx-component :is(.accordion-item,.accordion-button,.accordion-header,.tab-content){border-radius:0}
.nx-body .nx-component .accordion-button{padding:1rem 1.25rem;color:var(--nx-theme-heading,#171c2d);background:var(--nx-theme-card-bg,#fff);border:1px solid var(--nx-theme-border,#e3e6ed);width:100%;justify-content:space-between}
.nx-body .nx-component .accordion-body{padding:1.25rem;border:1px solid var(--nx-theme-border,#e3e6ed);border-top:0}
.nx-body :where(.nx-component,.nx-sidebar) :where(.badge,.page-link,.btn,.card,.form-control,.form-select,.accordion-button,.alert){border-radius:0!important}

/* 5. Smaller displays: never crop forms or toolbars. */
@media(max-width:700px){
 .nx-body .nx-component :is(.control-group,.form-group,.input-group,.form-check){max-width:100%;min-width:0}
 .nx-body .nx-component :where(.btn,.button,button[type="submit"],input[type="submit"]){max-width:100%}
 .nx-body .nx-component :where(.com-users-registration,.com-users-profile,.com-contact,.com-finder,.com-search){width:100%;min-width:0}
 .nx-body .nx-component :where(.table-responsive){overflow-x:auto}
}

/* Navigation and footer palette inherit the same central settings without overriding layout. */
.nx-body .nx-navigation:not(.is-open) .mod-menu > li > a{color:var(--nx-theme-header-nav,var(--nx-ink))}
.nx-body .nx-navigation .mod-menu > li.active > a,.nx-body .nx-navigation .mod-menu > li.current > a{color:var(--nx-theme-link,var(--nx-primary))}
.nx-body .nx-footer :is(p,small,.nx-footer-additional,.nx-footer-contact p,.nx-footer-legal-col p){color:var(--nx-theme-footer-text,#c0c7d7)}
.nx-body .nx-footer :is(.nx-footer-col,.nx-footer-brand,.nx-footer-bar) a:not(.nx-footer-title){color:var(--nx-theme-footer-link,#d7def1)}
.nx-body .nx-footer :is(.nx-footer-col,.nx-footer-brand,.nx-footer-bar) a:not(.nx-footer-title):hover{color:var(--nx-accent)}

/* Joomla form fields should fill the available column, not retain short UA widths. */
.nx-body .nx-component .control-group > .controls,
.nx-body .nx-component .form-group > .controls {width:100%;max-width:100%;}
.nx-body .nx-component :is(.control-group,.form-group) > .controls > :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea,.form-control,.form-select) {
  display:block;width:100%;max-width:100%;
}
.nx-body .nx-component :is(.control-group,.form-group) > .controls > .input-group {width:100%;}
