/*
Theme Name: NCO Custom Theme
Author: Crispy Contrast - Leo Dev
Version: 1.0
Text Domain: nco-theme
*/

:root{
  --nco-bg:#ffffff;
  --nco-surface:#cdcecf;
  --nco-text:#181818;
  --nco-muted:#535864;
  --nco-primary:#3b82f6;
  --nco-border:rgba(255,255,255,.10);
  --nco-radius:14px;
  --nco-container:1600px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--nco-text);

  line-height:1.6;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
a:hover{color:var(--nco-primary)}

img{max-width:100%;height:auto}

.nco-container{max-width:var(--nco-container);margin:0 auto;padding:0 18px}

.nco-site-header{
  position:sticky;top:0;z-index:50;
  backdrop-filter:saturate(130%) blur(10px);
  background:rgba(11,18,32,.75);
  border-bottom:1px solid var(--nco-border);
}

.nco-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}

.nco-brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.3px}
.nco-brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--nco-primary),#22c55e);box-shadow:0 8px 30px rgba(59,130,246,.25)}
.nco-brand-title{font-size:16px}
.nco-brand-sub{font-size:12px;color:var(--nco-muted);font-weight:500}

.nco-nav{display:flex;align-items:center;gap:0;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.nco-nav ul{display:flex;align-items:center;gap:0;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.nco-nav li{margin:0;padding:0}
.nco-nav a{display:block;padding:8px 12px;border-radius:10px;color:var(--nco-muted);font-size:13px;font-weight:600;white-space:nowrap;transition:background .15s ease,color .15s ease}
.nco-nav a:hover{color:var(--nco-primary)}
.nco-nav .current-menu-item > a,.nco-nav .current_page_item > a{color: var(--nco-primary);}

.nco-hero{padding:44px 0 26px}
.nco-hero-card{
  border:1px solid var(--nco-border);
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border-radius:var(--nco-radius);
  padding:30px;
}

.nco-hero h1{margin:0 0 8px;font-size:clamp(28px,4vw,44px);line-height:1.1}
.nco-hero p{margin:0;
  /*color:  var(--nco-muted);*/
  max-width:70ch;
}

.nco-main{padding:0px}

/* Scope full-width + sidebar layout to the front page only */
.home .nco-main .nco-container,.archive .nco-main .nco-container{
	max-width:none;
	width:100%;
	padding:0 18px;
	overflow-x:hidden;
}

.home .nco-grid,.archive .nco-grid {
	display:block;
}

@media (max-width: 1092px){
  .nco-container{padding:0 12px}
  .home .nco-main .nco-container,.archive .nco-main .nco-container{padding:0 12px}

  /* Prevent any child from pushing wider than viewport */
  .nco-grid{max-width:100vw;overflow-x:hidden}
  .nco-content{min-width:0;max-width:100%;overflow-x:hidden}
  .nco-card{min-width:0;max-width:100%;overflow:hidden}
}


.nco-post{margin:0 0 16px}
.nco-post:last-child{margin-bottom:0}
.nco-post-title{margin:0 0 6px;font-size:22px}
.nco-post-meta{font-size:12px;color:var(--nco-muted)}
.nco-post-excerpt{margin:10px 0 0;color:var(--nco-muted)}

.nco-button{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 14px;border-radius:12px;
  border:1px solid rgba(59,130,246,.35);
  background:rgba(59,130,246,.14);
  color:var(--nco-text);
}
.nco-button:hover{background:rgba(59,130,246,.22)}

/* ══════════════════════════════════════
   Global Form Styles — Modern & Clean
   ══════════════════════════════════════ */

/* Form wrapper */
form{
  max-width:100%;
}

/* Labels */
label,
.woocommerce form .form-row label{
  display:block;
  margin-bottom:6px;
  font-size:13px;
  font-weight:700;
  color:#222;
  letter-spacing:.01em;
}

/* Text inputs, selects, textareas */
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="month"],
input[type="week"],
input[type="time"],
input[type="color"],
select,
textarea{
  display:block;
  width:100%;
  padding:10px 14px;
  font-size:14px;
  font-family:inherit;
  font-weight:500;
  color:#111;
  background:#fff;
  border:1.5px solid rgba(0,0,0,.12);
  border-radius:10px;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
  -webkit-appearance:none;
  appearance:none;
}
input[type="search"]{
   border:none !important;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
input[type="datetime-local"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
select:focus,
textarea:focus{
  border-color:#0070ba;
  box-shadow:0 0 0 3px rgba(0,112,186,.12);
  background:#fff;
}
input[type="search"]:focus{
  border-color:none;
  box-shadow:none;
}
/* Placeholder */
::placeholder{
  color:#aaa;
  font-weight:400;
  opacity:1;
}

/* Textarea */
textarea{
  min-height:120px;
  resize:vertical;
  line-height:1.6;
}

/* Select arrow */
select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:12px;
  padding-right:38px;
  cursor:pointer;
}

/* Checkboxes & radios */
input[type="checkbox"],
input[type="radio"]{
  width:18px;
  height:18px;
  margin:0 8px 0 0;
  border:1.5px solid rgba(0,0,0,.18);
  border-radius:5px;
  background:#fff;
  cursor:pointer;
  vertical-align:middle;
  -webkit-appearance:none;
  appearance:none;
  transition:background .15s ease, border-color .15s ease, box-shadow .15s ease;
  flex-shrink:0;
}

input[type="radio"]{
  border-radius:50%;
}

input[type="checkbox"]:checked{
  background:#0070ba;
  border-color:#0070ba;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' fill='none'%3E%3Cpath d='M1 5.5L4 8.5 11 1.5' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:12px;
}

input[type="radio"]:checked{
  background:#0070ba;
  border-color:#0070ba;
  box-shadow:inset 0 0 0 3px #fff;
}

input[type="checkbox"]:focus,
input[type="radio"]:focus{
  box-shadow:0 0 0 3px rgba(0,112,186,.15);
}

/* File input */
input[type="file"]{
  padding:10px;
  font-size:13px;
  border:1.5px dashed rgba(0,0,0,.15);
  border-radius:10px;
  background:#fafafa;
  cursor:pointer;
}

input[type="file"]:hover{
  border-color:#0070ba;
  background:#f0f7ff;
}

/* Buttons — submit / generic */
input[type="submit"],
input[type="button"],
button[type="submit"],
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 24px;
  font-size:14px;
  font-family:inherit;
  font-weight:700;
  color:#fff;
  background:#0070ba;
  border:none;
  border-radius:10px;
  cursor:pointer;
  transition:background .2s ease, transform .1s ease, box-shadow .2s ease;
  -webkit-appearance:none;
  appearance:none;
}

input[type="submit"]:hover,
input[type="button"]:hover,
button[type="submit"]:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover{
  background:#005a96;
  box-shadow:0 4px 14px rgba(0,112,186,.25);
}

input[type="submit"]:active,
button[type="submit"]:active,
.woocommerce button.button:active{
  transform:scale(.98);
}

/* Alt / outline button */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt{
  background:#0070ba;
  color:#fff;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover{
  background:#005a96;
}

/* Disabled state */
input:disabled,
select:disabled,
textarea:disabled,
button:disabled,
input[type="submit"]:disabled{
  opacity:.5;
  cursor:not-allowed;
  pointer-events:none;
}

/* Form rows / field groups */
.form-row,
.woocommerce-form-row,
p.form-row{
  margin-bottom:16px;
}

/* Validation — WooCommerce */
.woocommerce-invalid input,
.woocommerce-invalid select{
  border-color:#dc2626 !important;
  box-shadow:0 0 0 3px rgba(220,38,38,.1) !important;
}

.woocommerce-validated input,
.woocommerce-validated select{
  border-color:#16a34a !important;
}

/* Required asterisk */
abbr.required,
.required{
  color:#dc2626;
  text-decoration:none;
  font-weight:700;
}

/* Fieldset & legend */
fieldset{
  border:1.5px solid rgba(0,0,0,.08);
  border-radius:12px;
  padding:20px 24px;
  margin:0 0 20px;
  background:#fafbfc;
}

legend{
  font-size:15px;
  font-weight:800;
  color:#111;
  padding:0 8px;
}

/* ══════════════════════════════════════
   WooCommerce Form Overrides
   Override WooCommerce bundled .input-text / select / Select2
   ══════════════════════════════════════ */

/* Text inputs & selects inside WooCommerce forms */
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce-page form .form-row .input-text,
.woocommerce-page form .form-row select{
  display:block !important;
  width:100% !important;
  padding:12px 16px !important;
  font-size:14px !important;
  font-family:inherit !important;
  font-weight:500 !important;
  color:#111 !important;
  background:#fff !important;
  border:1.5px solid rgba(0,0,0,.12) !important;
  border-radius:12px !important;
  outline:none !important;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  box-sizing:border-box !important;
  line-height:1.5 !important;
  height:auto !important;
  margin:0 !important;
  box-shadow:none !important;
}

/* Focus state */
.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce-page form .form-row .input-text:focus,
.woocommerce-page form .form-row select:focus{
  border-color:#0070ba !important;
  box-shadow:0 0 0 4px rgba(0,112,186,.10) !important;
  background:#fff !important;
}

/* Select dropdown arrow override */
.woocommerce form .form-row select,
.woocommerce-page form .form-row select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 16px center !important;
  background-size:12px !important;
  padding-right:40px !important;
  cursor:pointer !important;
}

/* Textarea height */
.woocommerce form .form-row textarea{
  min-height:120px !important;
  resize:vertical !important;
}

/* WooCommerce form row spacing */
.woocommerce form .form-row{
  padding:0 !important;
  margin:0 0 18px !important;
}

/* Labels */
.woocommerce form .form-row label{
  display:block !important;
  margin-bottom:7px !important;
  font-size:13px !important;
  font-weight:700 !important;
  color:#222 !important;
  letter-spacing:.01em !important;
  line-height:1.4 !important;
}

/* Validation — invalid */
.woocommerce form .form-row.woocommerce-invalid .input-text,
.woocommerce form .form-row.woocommerce-invalid select{
  border-color:#dc2626 !important;
  box-shadow:0 0 0 4px rgba(220,38,38,.08) !important;
}

/* Validation — validated */
.woocommerce form .form-row.woocommerce-validated .input-text,
.woocommerce form .form-row.woocommerce-validated select{
  border-color:#16a34a !important;
  box-shadow:0 0 0 4px rgba(22,163,74,.08) !important;
}

/* ── Select2 (country / state dropdowns) ── */
.woocommerce .select2-container .select2-selection--single{
  height:auto !important;
  padding:10px 16px !important;
  border:1.5px solid rgba(0,0,0,.12) !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:none !important;
  transition:border-color .2s ease, box-shadow .2s ease !important;
}

.woocommerce .select2-container--focus .select2-selection--single,
.woocommerce .select2-container--open .select2-selection--single{
  border-color:#0070ba !important;
  box-shadow:0 0 0 4px rgba(0,112,186,.10) !important;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__rendered{
  color:#111 !important;
  font-size:14px !important;
  font-weight:500 !important;
  line-height:1.5 !important;
  padding:0 !important;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__arrow{
  height:100% !important;
  right:12px !important;
  top:0 !important;
}

/* Select2 dropdown panel */
.select2-container--default .select2-results__option{
  padding:10px 16px;
  font-size:14px;
  font-weight:500;
  color:#333;
  transition:background .12s ease;
}

.select2-container--default .select2-results__option--highlighted[aria-selected]{
  background:#0070ba !important;
  color:#fff !important;
}

.select2-container--default .select2-results__option[aria-selected="true"]{
  background:rgba(0,112,186,.08);
  color:#0070ba;
  font-weight:600;
}

.select2-dropdown{
  border:1.5px solid rgba(0,0,0,.10) !important;
  border-radius:12px !important;
  box-shadow:0 8px 30px rgba(0,0,0,.10) !important;
  overflow:hidden;
  margin-top:4px;
}

.select2-container--default .select2-search--dropdown .select2-search__field{
  padding:10px 14px !important;
  border:1.5px solid rgba(0,0,0,.10) !important;
  border-radius:10px !important;
  font-size:14px !important;
  outline:none !important;
  margin:8px !important;
  width:calc(100% - 16px) !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus{
  border-color:#0070ba !important;
  box-shadow:0 0 0 3px rgba(0,112,186,.10) !important;
}

/* ══════════════════════════════════════
   Mobile form adjustments
   ══════════════════════════════════════ */
@media (max-width: 600px){
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="search"],
  input[type="url"],
  input[type="tel"],
  input[type="number"],
  select,
  textarea{
    padding:10px 12px;
    font-size:16px; /* prevents iOS zoom */
    border-radius:8px;
  }

  input[type="submit"],
  button[type="submit"],
  .woocommerce button.button{
    width:100%;
    padding:13px 20px;
    font-size:15px;
  }

  fieldset{
    padding:14px 16px;
  }

  /* WooCommerce form mobile */
  .woocommerce form .form-row .input-text,
  .woocommerce form .form-row select,
  .woocommerce form .form-row textarea{
    padding:12px 14px !important;
    font-size:16px !important;  /* prevents iOS zoom */
    border-radius:10px !important;
  }

  .woocommerce .select2-container .select2-selection--single{
    padding:10px 14px !important;
    border-radius:10px !important;
  }

  .woocommerce .select2-container .select2-selection--single .select2-selection__rendered{
    font-size:16px !important;
  }
}

/* ══════════════════════════════════════
   WooCommerce Notices — Modern Style
   ══════════════════════════════════════ */

/* Base notice box */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  position:relative;
  padding:16px 20px 16px 52px !important;
  margin:0 0 20px !important;
  border-top:none !important;
  border:1.5px solid rgba(0,0,0,.08) !important;
  border-radius:14px !important;
  font-size:14px !important;
  font-weight:500 !important;
  line-height:1.6 !important;
  color:#333 !important;
  list-style:none !important;
  background:#f8f9fb !important;
}

/* Kill WooCommerce clearfix pseudo ::after */
.woocommerce-message::after,
.woocommerce-info::after,
.woocommerce-error::after{
  content:none !important;
  display:none !important;
}

/* Replace WooCommerce font icons with Font Awesome */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before{
  font-family:'Font Awesome 6 Free' !important;
  font-weight:900 !important;
  font-size:16px !important;
  position:absolute !important;
  left:18px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:24px !important;
  height:24px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:50% !important;
  line-height:1 !important;
}

/* ── Success (message) ── */
.woocommerce-message{
  background:rgba(22,163,74,.06) !important;
  border-color:rgba(22,163,74,.20) !important;
  color:#15803d !important;
}
.woocommerce-message::before{
  content:'\f00c' !important;  /* fa-check */
  color:#16a34a !important;
}

/* ── Info ── */
.woocommerce-info{
  background:rgba(0,112,186,.05) !important;
  border-color:rgba(0,112,186,.18) !important;
  color:#1e5f8a !important;
}
.woocommerce-info::before{
  content:'\f05a' !important;  /* fa-circle-info */
  color:#0070ba !important;
}

/* ── Error ── */
.woocommerce-error{
  background:rgba(220,38,38,.05) !important;
  border-color:rgba(220,38,38,.18) !important;
  color:#991b1b !important;
}
.woocommerce-error::before{
  content:'\f06a' !important;  /* fa-circle-exclamation */
  color:#dc2626 !important;
}

/* Notice list items */
.woocommerce-error li,
.woocommerce-info li,
.woocommerce-message li{
  list-style:none !important;
  padding:0 !important;
  margin:0 !important;
}

/* Notice links */
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a{
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:2px;
}
.woocommerce-message a{ color:#15803d; }
.woocommerce-info a{ color:#0070ba; }
.woocommerce-error a{ color:#dc2626; }

/* Notice buttons — float right */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button{
  float:right;
  margin-left:12px;
  font-size:13px !important;
  padding:8px 18px !important;
  border-radius:10px !important;
}

/* Footer styles are in assets/css/footer.css */

/* WordPress core */
.wp-block-image{margin:0}
.alignwide{max-width:1200px}
.alignfull{max-width:none;width:100%}

.screen-reader-text{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}