/* ============================================================
   NiceShield Design Layer v2.0 — Homepage Redesign
   Presentation only. Never alters, adds, removes or reorders
   content. Overrides layout, colour, spacing, typography and
   components only.
   ============================================================ */

:root{
  --ns-primary:#0b6b53;
  --ns-primary-2:#0f9d78;
  --ns-primary-dark:#04382b;
  --ns-accent:#d9b44a;
  --ns-accent-2:#f0cd6a;
  --ns-ink:#0d1f1a;
  --ns-body:#40544d;
  --ns-muted:#6f827b;
  --ns-line:#e2ece8;
  --ns-bg:#f6faf8;
  --ns-surface:#ffffff;
  --ns-surface-2:#eef6f2;
  --ns-radius:24px;
  --ns-radius-sm:14px;
  --ns-shadow-sm:0 2px 12px rgba(5,50,38,.06);
  --ns-shadow:0 16px 40px rgba(5,50,38,.10);
  --ns-shadow-lg:0 30px 70px rgba(5,50,38,.18);
  --ns-maxw:1200px;
  --ns-font:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

/* ---------- Base typography & canvas ---------- */
html{scroll-behavior:smooth;}
body{
  font-family:var(--ns-font) !important;
  background:var(--ns-bg) !important;
  color:var(--ns-body) !important;
  font-size:17px !important;
  line-height:1.75 !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4,h5,h6,.entry-title,.page-title{
  font-family:var(--ns-font) !important;
  color:var(--ns-ink) !important;
  letter-spacing:-.025em !important;
  line-height:1.16 !important;
  font-weight:800 !important;
}
h1{font-size:clamp(2.1rem,4.4vw,3.5rem) !important;}
h2{font-size:clamp(1.7rem,3.1vw,2.5rem) !important;}
h3{font-size:clamp(1.28rem,2vw,1.65rem) !important;}
h4{font-size:1.2rem !important;}
p{color:var(--ns-body) !important;}
a{color:var(--ns-primary) !important;transition:color .2s ease,opacity .2s ease;}
a:hover{color:var(--ns-primary-2) !important;}

/* Content width + rhythm */
#main .ct-container,
#main .entry-content,
.ct-container-full,
.ct-container{max-width:var(--ns-maxw) !important;margin-left:auto !important;margin-right:auto !important;}

/* ============================================================
   HEADER
   ============================================================ */
#header.ct-header,header.ct-header{
  background:rgba(255,255,255,.9) !important;
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--ns-line) !important;
  box-shadow:0 1px 0 rgba(5,50,38,.04),0 10px 30px rgba(5,50,38,.05) !important;
}
#header .ct-header-row,#header .ct-header-main{min-height:80px !important;}
#header .site-title,#header .site-title a{font-weight:800 !important;letter-spacing:-.03em !important;color:var(--ns-ink) !important;font-size:1.35rem !important;}
#header .menu > li > a,#header .ct-menu > li > a,#header nav a{font-weight:650 !important;color:var(--ns-ink) !important;font-size:.95rem !important;position:relative;padding:6px 2px !important;}
#header .menu > li > a::after,#header .ct-menu > li > a::after{content:'';position:absolute;left:0;right:100%;bottom:0;height:2px;background:linear-gradient(90deg,var(--ns-primary),var(--ns-primary-2));transition:right .25s ease;border-radius:2px;}
#header .menu > li > a:hover::after,#header .ct-menu > li > a:hover::after{right:0;}

/* ============================================================
   BUTTONS
   ============================================================ */
a.elementor-button,.elementor-button,.wp-block-button__link,button.wp-block-button__link,
.ct-button,.ct-button-ghost,a.ct-button,input[type=submit],button[type=submit],
.wpforms-submit,.ct-header .ct-button,.gfm-btn{
  font-family:var(--ns-font) !important;font-weight:750 !important;letter-spacing:.01em !important;
  border-radius:999px !important;padding:15px 32px !important;font-size:15px !important;line-height:1 !important;
  border:0 !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;
  gap:8px;color:#fff !important;
  background-image:linear-gradient(135deg,var(--ns-primary) 0%,var(--ns-primary-2) 100%) !important;
  background-color:var(--ns-primary) !important;
  box-shadow:0 12px 28px rgba(11,107,83,.30) !important;
  transition:transform .18s ease,box-shadow .22s ease,filter .22s ease !important;text-decoration:none !important;
}
a.elementor-button:hover,.elementor-button:hover,.wp-block-button__link:hover,.ct-button:hover,
a.ct-button:hover,input[type=submit]:hover,button[type=submit]:hover,.wpforms-submit:hover,.gfm-btn:hover{
  transform:translateY(-2px) !important;box-shadow:0 20px 40px rgba(11,107,83,.38) !important;filter:brightness(1.06);color:#fff !important;
}

/* ============================================================
   FOOTER
   ============================================================ */
#footer.ct-footer,footer.ct-footer{
  background:linear-gradient(180deg,#05402f 0%,#032820 100%) !important;
  color:rgba(224,240,234,.86) !important;margin-top:48px;
  padding-top:clamp(40px,5vw,72px) !important;border-top:3px solid var(--ns-accent);
}
#footer h1,#footer h2,#footer h3,#footer h4,#footer .widget-title{color:#ffffff !important;font-weight:750 !important;}
#footer p,#footer li,#footer span,#footer a{color:rgba(224,240,234,.86) !important;}
#footer a{text-decoration:none !important;transition:color .2s ease,padding-left .2s ease;}
#footer a:hover{color:var(--ns-accent-2) !important;padding-left:4px;}
#footer .ct-footer-copyright{border-top:1px solid rgba(255,255,255,.12) !important;padding-top:22px !important;color:rgba(224,240,234,.7) !important;}

/* ============================================================
   FORMS & MISC POLISH
   ============================================================ */
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=password],textarea,select{
  font-family:var(--ns-font) !important;border:1px solid var(--ns-line) !important;border-radius:var(--ns-radius-sm) !important;
  padding:14px 16px !important;background:#fff !important;color:var(--ns-ink) !important;
  transition:border-color .2s ease,box-shadow .2s ease !important;
}
input:focus,textarea:focus,select:focus{outline:none !important;border-color:var(--ns-primary-2) !important;box-shadow:0 0 0 4px rgba(15,157,120,.14) !important;}
img{border-radius:var(--ns-radius-sm);}
::selection{background:rgba(15,157,120,.22);}

/* ============================================================
   HOMEPAGE REDESIGN  —  overrides the page's own gfm theme
   Higher specificity + !important so it always wins cleanly.
   ============================================================ */
body .gfm-draft{
  --bg:#f6faf8;--surface:#ffffff;--line:#e2ece8;--text:#0d1f1a;--muted:#6f827b;
  --cyan:#0f9d78;--violet:#0b6b53;
  background:var(--ns-bg) !important;
  color:var(--ns-body) !important;
  font-family:var(--ns-font) !important;
  overflow:visible !important;
}
body .gfm-draft .gfm-wrap{max-width:var(--ns-maxw) !important;padding:0 clamp(20px,4vw,40px) !important;}

/* Hero */
body .gfm-draft .gfm-hero{
  background:
    radial-gradient(1200px 520px at 80% -14%,rgba(15,157,120,.30),transparent 60%),
    radial-gradient(720px 420px at 4% 6%,rgba(217,180,74,.16),transparent 55%),
    linear-gradient(155deg,#04382b 0%,#06543f 52%,#0b6b53 100%) !important;
  padding:clamp(72px,10vw,140px) 0 clamp(80px,10vw,140px) !important;
  position:relative;
  overflow:hidden;
  border-radius:0 0 40px 40px;
}
body .gfm-draft .gfm-kicker{
  color:var(--ns-accent-2) !important;font-size:.78rem !important;font-weight:800 !important;
  letter-spacing:.18em !important;text-transform:uppercase !important;
  display:inline-block;padding:8px 16px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.06);
}
body .gfm-draft .gfm-hero h1{
  color:#ffffff !important;max-width:900px !important;margin:22px 0 20px !important;
  font-size:clamp(2.4rem,6vw,5rem) !important;line-height:1.02 !important;letter-spacing:-.05em !important;
  text-shadow:0 2px 24px rgba(0,0,0,.20);
}
body .gfm-draft .gfm-gradient{
  background:linear-gradient(100deg,#ffffff 8%,var(--ns-accent-2) 52%,var(--ns-primary-2) 100%) !important;
  -webkit-background-clip:text !important;background-clip:text !important;color:transparent !important;
}
body .gfm-draft .gfm-lead{color:rgba(236,250,246,.92) !important;max-width:720px !important;font-size:clamp(1.08rem,2vw,1.35rem) !important;line-height:1.7 !important;}
body .gfm-draft .gfm-actions{display:flex !important;flex-wrap:wrap !important;gap:14px !important;margin-top:34px !important;}
body .gfm-draft .gfm-btn{
  background:linear-gradient(120deg,var(--ns-accent-2),var(--ns-accent)) !important;
  color:#083027 !important;border:0 !important;
  box-shadow:0 16px 40px rgba(217,180,74,.28) !important;
}
body .gfm-draft .gfm-btn.secondary{
  background:rgba(255,255,255,.08) !important;color:#ffffff !important;
  border:1px solid rgba(255,255,255,.3) !important;box-shadow:none !important;
  backdrop-filter:blur(6px);
}

/* Sections */
body .gfm-draft .gfm-section{padding:clamp(56px,7vw,96px) 0 !important;}
body .gfm-draft .gfm-section h2{color:var(--ns-ink) !important;font-size:clamp(1.8rem,3.6vw,3rem) !important;letter-spacing:-.03em !important;margin:0 0 16px !important;}
body .gfm-draft .gfm-section > .gfm-wrap > h2::after{
  content:'';display:block;width:68px;height:4px;margin-top:16px;border-radius:4px;
  background:linear-gradient(90deg,var(--ns-accent),var(--ns-primary-2));
}
body .gfm-draft .gfm-muted{color:var(--ns-muted) !important;line-height:1.75 !important;}

/* Cards grid */
body .gfm-draft .gfm-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:22px !important;margin-top:38px !important;}
body .gfm-draft .gfm-card{
  padding:30px !important;border:1px solid var(--ns-line) !important;border-radius:var(--ns-radius) !important;
  background:var(--ns-surface) !important;
  box-shadow:var(--ns-shadow-sm) !important;
  transition:transform .22s ease,box-shadow .28s ease,border-color .28s ease !important;
  position:relative;overflow:hidden;color:var(--ns-body) !important;
}
body .gfm-draft .gfm-card::before{
  content:'';position:absolute;inset:0 0 auto 0;height:4px;
  background:linear-gradient(90deg,var(--ns-primary),var(--ns-accent));
  opacity:0;transition:opacity .25s ease;
}
body .gfm-draft .gfm-card:hover{transform:translateY(-8px) !important;box-shadow:var(--ns-shadow-lg) !important;border-color:rgba(11,107,83,.30) !important;}
body .gfm-draft .gfm-card:hover::before{opacity:1;}
body .gfm-draft .gfm-card h3{color:var(--ns-ink) !important;margin:0 0 10px !important;font-size:1.2rem !important;}
body .gfm-draft .gfm-number{color:var(--ns-primary-2) !important;font-weight:800 !important;letter-spacing:.14em !important;font-size:.78rem !important;}

/* Disclosure callout */
body .gfm-draft .gfm-disclosure{
  border:1px solid rgba(11,107,83,.28) !important;border-radius:var(--ns-radius) !important;
  padding:28px !important;background:linear-gradient(135deg,rgba(15,157,120,.08),rgba(217,180,74,.06)) !important;
  line-height:1.75 !important;color:var(--ns-ink) !important;
}

/* Process steps */
body .gfm-draft .gfm-process{counter-reset:step !important;}
body .gfm-draft .gfm-step{display:flex !important;gap:18px !important;align-items:flex-start !important;padding:20px 22px !important;border:1px solid var(--ns-line) !important;border-radius:var(--ns-radius-sm) !important;background:var(--ns-surface) !important;box-shadow:var(--ns-shadow-sm) !important;}
body .gfm-draft .gfm-step + .gfm-step{margin-top:16px !important;}
body .gfm-draft .gfm-step:before{
  counter-increment:step !important;content:counter(step) !important;
  display:grid !important;place-items:center !important;flex:none !important;
  width:38px !important;height:38px !important;border-radius:50% !important;
  background:linear-gradient(135deg,var(--ns-primary),var(--ns-primary-2)) !important;
  color:#ffffff !important;font-weight:900 !important;
}

/* CTA band */
body .gfm-draft .gfm-cta{
  border:0 !important;border-radius:32px !important;padding:clamp(32px,5vw,56px) !important;
  background:
    radial-gradient(900px 400px at 85% 0%,rgba(15,157,120,.30),transparent 60%),
    linear-gradient(135deg,#04382b,#0b6b53) !important;
  color:#eafaf4 !important;box-shadow:var(--ns-shadow) !important;
}
body .gfm-draft .gfm-cta h2,body .gfm-draft .gfm-cta h3{color:#ffffff !important;}
body .gfm-draft .gfm-cta p,body .gfm-draft .gfm-cta .gfm-muted{color:rgba(234,250,244,.9) !important;}

/* Reviews */
body .gfm-draft .gfm-review-anchor{cursor:pointer;scroll-margin-top:120px;}
body .gfm-draft .gfm-review-anchor a{color:inherit !important;text-decoration:none !important;}
body .gfm-draft .gfm-review-panel{scroll-margin-top:120px;}
body .gfm-draft .gfm-review-button{font-weight:700 !important;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  #main > section{padding-left:22px !important;padding-right:22px !important;}
  body .gfm-draft .gfm-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:760px){
  body .gfm-draft .gfm-grid{grid-template-columns:1fr !important;}
  body .gfm-draft .gfm-hero{padding-top:64px !important;border-radius:0 0 26px 26px !important;}
  body .gfm-draft .gfm-actions{flex-direction:column !important;align-items:stretch !important;}
  body .gfm-draft .gfm-btn{width:100% !important;}
}
@media(max-width:600px){
  body{font-size:16px !important;}
  a.elementor-button,.elementor-button,.wp-block-button__link,.ct-button,.gfm-btn{padding:13px 22px !important;}
}
