/* ==========================================================================
   Necify Lab LLC — design system
   Warm cream ground, charcoal type, a single yellow accent, soft rounded cards.
   Every selector is namespaced nfy- so nothing collides with another project.
   ========================================================================== */

:root{
  /* --- ground ---------------------------------------------------------- */
  --nfy-cream:  #FAF8F0;
  --nfy-paper:  #FFFFFF;
  --nfy-sand:   #F3EFE2;
  --nfy-ink:    #1C1B18;   /* 16.2:1 on cream */
  --nfy-ink-sh: #26241F;

  /* --- type ------------------------------------------------------------ */
  --nfy-t1:     #1C1B18;
  --nfy-t2:     #5E5A51;   /* 6.5:1 on cream — deliberately darker than the
                              reference site, whose muted grey sits at 4.6 */
  --nfy-t3:     #8C867A;   /* decorative only, never body copy */
  --nfy-rev:    #F4F1E8;   /* 15.3:1 on ink */
  --nfy-rev-2:  #B9B3A6;   /* 8.3:1 */
  --nfy-rev-3:  #857F73;

  /* --- accent -----------------------------------------------------------
     The yellow is a fill, never a text colour: it reads 1.4:1 against cream.
     Dark labels on yellow give 11.5:1. Links on light use the amber below.  */
  --nfy-sun:    #F7D046;
  --nfy-sun-2:  #EFC12E;
  --nfy-sun-wk: rgba(247,208,70,.26);
  --nfy-amber:  #7A5E00;   /* 5.8:1 on cream */
  --nfy-grow:   #1FA85A;   /* status dots and check glyphs only */

  /* --- lines ----------------------------------------------------------- */
  --nfy-line:   #E8E4DA;
  --nfy-line-2: #D6D0C2;
  --nfy-line-r: rgba(244,241,232,.14);
  --nfy-line-r2:rgba(244,241,232,.28);

  /* --- metrics --------------------------------------------------------- */
  --nfy-font:   "Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --nfy-wide:   1180px;
  --nfy-gut:    24px;
  --nfy-r:      20px;
  --nfy-r-sm:   14px;
  --nfy-bar:    76px;
  --nfy-ease:   cubic-bezier(.16,1,.3,1);
  --nfy-card:   0 1px 2px rgba(28,27,24,.04), 0 10px 28px -18px rgba(28,27,24,.3);
}

/* --- reset -------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nfy-bar) + 20px)}
body{
  margin:0;background:var(--nfy-cream);color:var(--nfy-t1);
  font-family:var(--nfy-font);font-size:17px;line-height:1.62;font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,figure,dl,dd{margin:0}
::selection{background:var(--nfy-sun);color:var(--nfy-ink)}
:focus-visible{outline:2px solid var(--nfy-amber);outline-offset:3px}

/* --- type scale --------------------------------------------------------- */
.nfy-h1,.nfy-h2,.nfy-h3,.nfy-h4{color:var(--nfy-t1);letter-spacing:-.03em;line-height:1.04;font-weight:800;text-wrap:balance}
.nfy-h1{font-size:clamp(2.5rem,1.5rem + 4.3vw,4.6rem);line-height:1.02}
.nfy-h2{font-size:clamp(1.95rem,1.35rem + 2.5vw,3.3rem);line-height:1.06}
.nfy-h3{font-size:clamp(1.25rem,1.1rem + .7vw,1.6rem);line-height:1.18;letter-spacing:-.02em;font-weight:700}
.nfy-h4{font-size:1.06rem;line-height:1.3;letter-spacing:-.012em;font-weight:700}
.nfy-lede{font-size:clamp(1.05rem,.98rem + .35vw,1.21rem);line-height:1.55;color:var(--nfy-t2)}
.nfy-small{font-size:.9rem;color:var(--nfy-t2);line-height:1.55}
.nfy-eyebrow{
  display:inline-block;font-size:.76rem;font-weight:700;letter-spacing:.17em;
  text-transform:uppercase;color:var(--nfy-t2);
}
.nfy-on-dark .nfy-eyebrow{color:var(--nfy-rev-2)}
.nfy-measure{max-width:60ch}
.nfy-center{text-align:center}
.nfy-center .nfy-lede{margin-left:auto;margin-right:auto;max-width:62ch}

/* --- layout ------------------------------------------------------------- */
.nfy-wrap{width:100%;max-width:var(--nfy-wide);margin:0 auto;padding:0 var(--nfy-gut)}
.nfy-sec{padding:clamp(64px,8vw,124px) 0;position:relative}
.nfy-sec--sm{padding:clamp(40px,4.5vw,64px) 0}
.nfy-sec--paper{background:var(--nfy-paper)}
.nfy-sec--sand{background:var(--nfy-sand)}
.nfy-sec--ink{background:var(--nfy-ink);color:var(--nfy-rev)}
.nfy-sec--ink .nfy-h1,.nfy-sec--ink .nfy-h2,.nfy-sec--ink .nfy-h3,.nfy-sec--ink .nfy-h4{color:var(--nfy-rev)}
.nfy-sec--ink .nfy-lede,.nfy-sec--ink .nfy-small{color:var(--nfy-rev-2)}
.nfy-head{max-width:760px;margin:0 auto clamp(38px,4.5vw,64px)}
.nfy-head .nfy-h2{margin-top:14px}
.nfy-head .nfy-lede{margin-top:18px}
.nfy-grid{display:grid;gap:20px}
.nfy-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.nfy-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.nfy-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.nfy-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,4.5vw,70px);align-items:center}

/* --- badge -------------------------------------------------------------- */
.nfy-badge{
  display:inline-flex;align-items:center;gap:9px;padding:8px 16px;border-radius:999px;
  background:var(--nfy-paper);border:1px solid var(--nfy-line);
  font-size:.84rem;font-weight:600;color:var(--nfy-t2);box-shadow:var(--nfy-card);
}
.nfy-badge i{width:7px;height:7px;border-radius:50%;background:var(--nfy-grow);flex:none;
  box-shadow:0 0 0 3px rgba(31,168,90,.16)}
.nfy-sec--ink .nfy-badge{background:rgba(244,241,232,.07);border-color:var(--nfy-line-r2);color:var(--nfy-rev-2);box-shadow:none}

/* --- buttons ------------------------------------------------------------ */
.nfy-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  padding:.95em 1.65em;border-radius:999px;border:1.5px solid var(--nfy-sun);
  background:var(--nfy-sun);color:var(--nfy-ink);
  font-weight:700;font-size:.97rem;line-height:1;cursor:pointer;white-space:nowrap;
  transition:background .2s var(--nfy-ease),border-color .2s,transform .25s var(--nfy-ease),box-shadow .25s var(--nfy-ease);
}
.nfy-btn:hover{background:var(--nfy-sun-2);border-color:var(--nfy-sun-2);transform:translateY(-2px);box-shadow:0 12px 24px -14px rgba(28,27,24,.5)}
.nfy-btn:active{transform:translateY(0)}
.nfy-btn svg{flex:none;transition:transform .25s var(--nfy-ease)}
.nfy-btn:hover svg{transform:translateX(4px)}
.nfy-btn--quiet{background:var(--nfy-paper);border-color:var(--nfy-line-2);color:var(--nfy-t1)}
.nfy-btn--quiet:hover{background:var(--nfy-paper);border-color:var(--nfy-ink);box-shadow:none}
.nfy-btn--ink{background:var(--nfy-ink);border-color:var(--nfy-ink);color:var(--nfy-rev)}
.nfy-btn--ink:hover{background:var(--nfy-ink-sh);border-color:var(--nfy-ink-sh)}
.nfy-sec--ink .nfy-btn--quiet{background:transparent;border-color:var(--nfy-line-r2);color:var(--nfy-rev)}
.nfy-sec--ink .nfy-btn--quiet:hover{border-color:var(--nfy-sun);color:var(--nfy-sun)}
.nfy-btns{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.nfy-center .nfy-btns{justify-content:center}

.nfy-tlink{display:inline-flex;align-items:center;gap:.45em;font-weight:700;font-size:.95rem;color:var(--nfy-amber)}
.nfy-tlink svg{transition:transform .25s var(--nfy-ease)}
.nfy-tlink:hover svg{transform:translateX(4px)}
.nfy-sec--ink .nfy-tlink{color:var(--nfy-sun)}

/* --- top bar ------------------------------------------------------------ */
.nfy-bar{
  position:fixed;inset:0 0 auto 0;z-index:90;height:var(--nfy-bar);display:flex;align-items:center;
  background:rgba(250,248,240,.88);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .3s;
}
.nfy-bar.nfy-stuck{border-bottom-color:var(--nfy-line)}
body.admin-bar .nfy-bar{top:32px}
.nfy-bar__in{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%}
.nfy-brand{display:flex;align-items:center;gap:9px;flex:none;font-weight:800;font-size:1.22rem;letter-spacing:-.03em}
.nfy-brand img{height:28px;width:auto}
.nfy-brand__dot{width:26px;height:26px;border-radius:8px;background:var(--nfy-sun);display:grid;place-items:center;flex:none}
.nfy-brand__dot b{font-size:.92rem;font-weight:800;color:var(--nfy-ink);line-height:1}
.nfy-menu{display:flex;align-items:center;gap:28px}
.nfy-menu ul{display:flex;align-items:center;gap:28px}
.nfy-menu a{font-size:.93rem;font-weight:600;color:var(--nfy-t2);transition:color .2s}
.nfy-menu a:hover{color:var(--nfy-t1)}
.nfy-menu .current-menu-item>a,.nfy-menu .current_page_item>a{color:var(--nfy-t1)}
.nfy-bar__end{display:flex;align-items:center;gap:14px}
.nfy-bar__tel{font-size:.9rem;font-weight:600;color:var(--nfy-t2);display:flex;align-items:center;gap:6px}
.nfy-bar__tel:hover{color:var(--nfy-amber)}
.nfy-toggle{display:none;width:40px;height:40px;border-radius:12px;border:1px solid var(--nfy-line-2);
  background:var(--nfy-paper);align-items:center;justify-content:center;cursor:pointer;padding:0}
.nfy-toggle i{display:block;width:16px;height:2px;border-radius:2px;background:var(--nfy-ink);position:relative}
.nfy-toggle i::before,.nfy-toggle i::after{content:"";position:absolute;left:0;width:16px;height:2px;border-radius:2px;background:var(--nfy-ink);transition:transform .3s var(--nfy-ease)}
.nfy-toggle i::before{top:-5px}
.nfy-toggle i::after{top:5px}
body.nfy-nav-open .nfy-toggle i{background:transparent}
body.nfy-nav-open .nfy-toggle i::before{transform:translateY(5px) rotate(45deg)}
body.nfy-nav-open .nfy-toggle i::after{transform:translateY(-5px) rotate(-45deg)}

/* --- hero --------------------------------------------------------------- */
.nfy-hero{padding-top:calc(var(--nfy-bar) + clamp(44px,5.5vw,86px));padding-bottom:clamp(40px,5vw,74px);position:relative;overflow:hidden}
.nfy-hero::before{
  content:"";position:absolute;inset:-20% 0 auto 0;height:70%;pointer-events:none;
  background:radial-gradient(60% 55% at 50% 0%,var(--nfy-sun-wk),transparent 70%);
}
.nfy-hero__in{position:relative;z-index:1;max-width:860px;margin:0 auto;text-align:center}
.nfy-hero .nfy-h1{margin-top:22px}
.nfy-hero .nfy-lede{margin:22px auto 0;max-width:60ch}
.nfy-hero .nfy-btns{margin-top:30px}
.nfy-hero__fine{margin-top:16px;font-size:.87rem;color:var(--nfy-t3)}

/* Fanned illustrative record cards under the hero */
.nfy-fan{position:relative;z-index:1;margin-top:clamp(36px,5vw,60px);display:flex;justify-content:center;
  align-items:flex-end;gap:0;perspective:1200px}
.nfy-rec{
  width:min(292px,78vw);background:var(--nfy-paper);border:1px solid var(--nfy-line);
  border-radius:var(--nfy-r);padding:20px;box-shadow:var(--nfy-card);
  transition:transform .4s var(--nfy-ease);
}
.nfy-rec:nth-child(1){transform:rotate(-5deg) translateY(18px) scale(.94);margin-right:-14px;transform-origin:bottom right}
.nfy-rec:nth-child(2){transform:translateY(-10px);z-index:2}
.nfy-rec:nth-child(3){transform:rotate(5deg) translateY(18px) scale(.94);margin-left:-14px;transform-origin:bottom left}
.nfy-fan:hover .nfy-rec:nth-child(1){transform:rotate(-8deg) translateY(10px) scale(.94)}
.nfy-fan:hover .nfy-rec:nth-child(3){transform:rotate(8deg) translateY(10px) scale(.94)}
.nfy-rec__top{display:flex;align-items:center;gap:12px;margin-bottom:15px}
.nfy-rec__av{width:38px;height:38px;border-radius:50%;background:var(--nfy-sand);display:grid;place-items:center;
  font-size:.82rem;font-weight:800;color:var(--nfy-amber);flex:none}
.nfy-rec__nm{font-weight:700;font-size:.97rem;letter-spacing:-.015em}
.nfy-rec__rl{font-size:.83rem;color:var(--nfy-t2)}
.nfy-rec__row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--nfy-line);font-size:.83rem}
.nfy-rec__row span{white-space:nowrap}
.nfy-rec__row span:last-child{text-align:right}
.nfy-rec__row span:first-child{color:var(--nfy-t3)}
.nfy-rec__row span:last-child{color:var(--nfy-t1);font-weight:600}
.nfy-rec__tag{display:inline-flex;align-items:center;gap:6px;margin-top:13px;padding:5px 11px;border-radius:999px;
  background:rgba(31,168,90,.1);color:#116638;font-size:.76rem;font-weight:700}
.nfy-fan__note{text-align:center;margin-top:22px;font-size:.82rem;color:var(--nfy-t3)}

/* --- logo / tool strip --------------------------------------------------- */
.nfy-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.nfy-chip{
  display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;
  background:var(--nfy-paper);border:1px solid var(--nfy-line);font-size:.88rem;font-weight:600;color:var(--nfy-t2);
  transition:border-color .2s,color .2s;
}
.nfy-chip:hover{border-color:var(--nfy-line-2);color:var(--nfy-t1)}
.nfy-chip i{width:6px;height:6px;border-radius:2px;background:var(--nfy-sun);flex:none}

/* --- cards --------------------------------------------------------------- */
.nfy-card{
  background:var(--nfy-paper);border:1px solid var(--nfy-line);border-radius:var(--nfy-r);
  padding:clamp(22px,2.4vw,30px);box-shadow:var(--nfy-card);
  transition:transform .3s var(--nfy-ease),box-shadow .3s var(--nfy-ease),border-color .2s;
}
.nfy-card--lift:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(28,27,24,.05),0 20px 40px -22px rgba(28,27,24,.4)}
.nfy-sec--ink .nfy-card{background:rgba(244,241,232,.05);border-color:var(--nfy-line-r);box-shadow:none}
.nfy-card .nfy-h3,.nfy-card .nfy-h4{margin-bottom:12px}
.nfy-card p{color:var(--nfy-t2);font-size:.96rem}
.nfy-sec--ink .nfy-card p{color:var(--nfy-rev-2)}

/* bullet list inside a card, last item emphasised */
.nfy-pts li{display:grid;grid-template-columns:auto 1fr;gap:11px;padding:7px 0;font-size:.94rem;color:var(--nfy-t2);align-items:start}
.nfy-pts li::before{content:"";width:9px;height:9px;border-radius:50%;border:1.5px solid var(--nfy-line-2);margin-top:.42em}
.nfy-pts li:last-child{color:var(--nfy-t1);font-weight:600}
.nfy-pts li:last-child::before{background:var(--nfy-ink);border-color:var(--nfy-ink)}
.nfy-sec--ink .nfy-pts li{color:var(--nfy-rev-2)}
.nfy-sec--ink .nfy-pts li:last-child{color:var(--nfy-rev)}
.nfy-sec--ink .nfy-pts li:last-child::before{background:var(--nfy-sun);border-color:var(--nfy-sun)}

/* check list */
.nfy-ticks li{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:9px 0;font-size:.96rem;color:var(--nfy-t2);align-items:start}
.nfy-ticks li svg{margin-top:.22em;color:var(--nfy-grow);flex:none}
.nfy-sec--ink .nfy-ticks li{color:var(--nfy-rev-2)}

/* step card */
.nfy-step__n{font-size:.82rem;font-weight:700;color:var(--nfy-t3);margin-bottom:4px}
.nfy-ico{
  width:44px;height:44px;border-radius:14px;background:var(--nfy-sand);border:1px solid var(--nfy-line);
  display:grid;place-items:center;color:var(--nfy-amber);margin-bottom:18px;
}
.nfy-sec--ink .nfy-ico{background:rgba(247,208,70,.14);border-color:transparent;color:var(--nfy-sun)}

/* --- sample table -------------------------------------------------------- */
.nfy-tablewrap{background:var(--nfy-paper);border:1px solid var(--nfy-line);border-radius:var(--nfy-r);
  box-shadow:var(--nfy-card);overflow:hidden}
.nfy-tablehead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;
  padding:clamp(20px,2.3vw,28px);border-bottom:1px solid var(--nfy-line)}
.nfy-tablescroll{overflow-x:auto}
.nfy-table{width:100%;border-collapse:collapse;min-width:720px;font-size:.9rem}
.nfy-table th{text-align:left;padding:13px clamp(14px,1.8vw,24px);font-size:.73rem;font-weight:700;
  letter-spacing:.11em;text-transform:uppercase;color:var(--nfy-t3);background:var(--nfy-cream);white-space:nowrap}
.nfy-table td{padding:14px clamp(14px,1.8vw,24px);border-top:1px solid var(--nfy-line);color:var(--nfy-t2);white-space:nowrap}
.nfy-table td:first-child{color:var(--nfy-t1);font-weight:600}
.nfy-table .nfy-pill{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--nfy-sand);font-size:.78rem;font-weight:600;color:var(--nfy-t2)}

/* --- faq ----------------------------------------------------------------- */
.nfy-faq{max-width:820px;margin:0 auto;display:grid;gap:12px}
.nfy-q{background:var(--nfy-paper);border:1px solid var(--nfy-line);border-radius:var(--nfy-r-sm);
  box-shadow:var(--nfy-card);overflow:hidden}
.nfy-q__h{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:19px clamp(18px,2vw,26px);font-weight:700;font-size:1.01rem;letter-spacing:-.012em}
.nfy-q__h::-webkit-details-marker{display:none}
.nfy-q__s{width:26px;height:26px;border-radius:50%;background:var(--nfy-sand);display:grid;place-items:center;flex:none;position:relative}
.nfy-q__s::before,.nfy-q__s::after{content:"";position:absolute;background:var(--nfy-ink);transition:transform .3s var(--nfy-ease)}
.nfy-q__s::before{width:11px;height:1.8px}
.nfy-q__s::after{width:1.8px;height:11px}
.nfy-q[open] .nfy-q__s{background:var(--nfy-sun)}
.nfy-q[open] .nfy-q__s::after{transform:rotate(90deg)}
.nfy-q__b{padding:0 clamp(18px,2vw,26px) 22px;color:var(--nfy-t2);font-size:.96rem;line-height:1.65;max-width:68ch}

/* --- forms ---------------------------------------------------------------- */
.nfy-form{display:grid;gap:17px}
.nfy-f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.nfy-field label{display:block;font-size:.84rem;font-weight:700;color:var(--nfy-t1);margin-bottom:7px}
.nfy-field .nfy-star{color:var(--nfy-amber)}
.nfy-field input,.nfy-field select,.nfy-field textarea{
  width:100%;padding:13px 15px;border:1px solid var(--nfy-line-2);border-radius:var(--nfy-r-sm);
  background:var(--nfy-paper);font-size:.97rem;color:var(--nfy-t1);transition:border-color .2s,box-shadow .2s}
.nfy-field textarea{min-height:128px;resize:vertical;line-height:1.6}
.nfy-field input:focus,.nfy-field select:focus,.nfy-field textarea:focus{
  outline:0;border-color:var(--nfy-ink);box-shadow:0 0 0 3px rgba(247,208,70,.4)}
.nfy-field select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--nfy-t2) 50%),linear-gradient(135deg,var(--nfy-t2) 50%,transparent 50%);
  background-position:calc(100% - 17px) 21px,calc(100% - 11px) 21px;background-size:6px 6px;background-repeat:no-repeat}
.nfy-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.nfy-note{font-size:.85rem;color:var(--nfy-t3);line-height:1.5}
.nfy-reply{display:none;padding:14px 17px;border-radius:var(--nfy-r-sm);font-size:.94rem;line-height:1.5;border:1px solid}
.nfy-reply.nfy-good{display:block;background:rgba(31,168,90,.08);border-color:rgba(31,168,90,.3);color:#116638}
.nfy-reply.nfy-bad{display:block;background:rgba(192,56,32,.07);border-color:rgba(192,56,32,.3);color:#95301A}
.nfy-form.nfy-sending{opacity:.6;pointer-events:none}

/* --- facts dl -------------------------------------------------------------- */
.nfy-facts__r{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:18px;padding:16px 0;border-top:1px solid var(--nfy-line)}
.nfy-facts__r:first-child{border-top:0;padding-top:0}
.nfy-facts dt{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--nfy-t3)}
.nfy-facts dd{margin:0;font-size:.97rem;color:var(--nfy-t1)}
.nfy-facts dd span{display:block;font-size:.88rem;color:var(--nfy-t2);margin-top:3px}

/* --- page hero -------------------------------------------------------------- */
.nfy-phero{padding:calc(var(--nfy-bar) + clamp(44px,5vw,78px)) 0 clamp(44px,5vw,70px);text-align:center;position:relative;overflow:hidden}
.nfy-phero::before{content:"";position:absolute;inset:-30% 0 auto 0;height:80%;pointer-events:none;
  background:radial-gradient(55% 55% at 50% 0%,var(--nfy-sun-wk),transparent 72%)}
.nfy-phero>*{position:relative;z-index:1}
.nfy-phero .nfy-h1{font-size:clamp(2.1rem,1.4rem + 2.9vw,3.5rem);margin-top:16px}
.nfy-phero .nfy-lede{margin:18px auto 0;max-width:62ch}
.nfy-crumb{display:flex;justify-content:center;gap:9px;align-items:center;font-size:.8rem;font-weight:600;color:var(--nfy-t3)}
.nfy-crumb a:hover{color:var(--nfy-amber)}

/* --- post list ------------------------------------------------------------- */
.nfy-post{display:block;height:100%}
.nfy-post__m{display:flex;gap:10px;align-items:center;font-size:.78rem;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--nfy-t3);margin-bottom:12px}
.nfy-post__m em{font-style:normal;color:var(--nfy-sun)}
.nfy-post:hover .nfy-h3{color:var(--nfy-amber)}

/* --- article --------------------------------------------------------------- */
.nfy-article{max-width:70ch;margin:0 auto}
.nfy-article h2{font-size:1.52rem;font-weight:800;letter-spacing:-.025em;line-height:1.2;margin:2em 0 .65em}
.nfy-article h3{font-size:1.18rem;font-weight:700;margin:1.6em 0 .45em}
.nfy-article p{color:var(--nfy-t2);line-height:1.76;margin-bottom:1.1em}
.nfy-article ul,.nfy-article ol{margin:0 0 1.3em}
.nfy-article li{display:grid;grid-template-columns:auto 1fr;gap:12px;margin-bottom:.55em;color:var(--nfy-t2);line-height:1.68}
.nfy-article li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--nfy-sun);margin-top:.62em}
.nfy-article strong{color:var(--nfy-t1);font-weight:700}
.nfy-article a{color:var(--nfy-amber);text-decoration:underline;text-underline-offset:3px}

/* --- footer ----------------------------------------------------------------- */
.nfy-foot{background:var(--nfy-ink);color:var(--nfy-rev-2);padding:clamp(52px,6vw,80px) 0 30px}
.nfy-foot__grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(26px,3.4vw,48px);
  padding-bottom:clamp(30px,3.6vw,46px);border-bottom:1px solid var(--nfy-line-r)}
.nfy-foot .nfy-brand{color:var(--nfy-rev);margin-bottom:18px}
.nfy-foot h4{font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--nfy-rev-3);margin-bottom:14px}
.nfy-foot li{margin-bottom:10px;font-size:.93rem}
.nfy-foot a:hover{color:var(--nfy-sun)}
.nfy-foot__blurb{font-size:.94rem;line-height:1.62;max-width:40ch;margin-bottom:18px}
.nfy-foot__nap{font-size:.89rem;line-height:1.6;color:var(--nfy-rev-3)}
.nfy-foot__nap b{display:block;color:var(--nfy-rev);font-weight:700;margin-bottom:3px}
.nfy-foot__end{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;padding-top:24px;font-size:.84rem;color:var(--nfy-rev-3)}
.nfy-foot__end nav{display:flex;flex-wrap:wrap;gap:18px}
/* --- social row (light ground by default, inverted inside the footer) ------- */
.nfy-social{display:flex;flex-wrap:wrap;gap:9px}
.nfy-social__label{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--nfy-t3);margin-bottom:11px}
.nfy-social a{
  width:38px;height:38px;border-radius:12px;border:1px solid var(--nfy-line-2);background:var(--nfy-paper);
  color:var(--nfy-t2);display:grid;place-items:center;
  transition:border-color .2s,color .2s,background .2s,transform .25s var(--nfy-ease);
}
.nfy-social a:hover{border-color:var(--nfy-ink);color:var(--nfy-ink);background:var(--nfy-sun);transform:translateY(-2px)}
.nfy-foot .nfy-social{margin-top:18px}
.nfy-foot .nfy-social__label{color:var(--nfy-rev-3)}
.nfy-foot .nfy-social a{width:34px;height:34px;border-radius:11px;background:transparent;border-color:var(--nfy-line-r);color:inherit}
.nfy-foot .nfy-social a:hover{border-color:var(--nfy-sun);color:var(--nfy-sun);background:transparent}

/* --- spacing helpers --------------------------------------------------------- */
.nfy-mt1{margin-top:10px}.nfy-mt2{margin-top:20px}.nfy-mt3{margin-top:32px}.nfy-mt4{margin-top:48px}
.nfy-mb2{margin-bottom:20px}.nfy-mb3{margin-bottom:32px}

/* --- motion: a short rise with a soft scale ---------------------------------- */
html.nfy-js [data-nfy]{opacity:0;transform:translateY(18px) scale(.985);
  transition:opacity .6s var(--nfy-ease),transform .7s var(--nfy-ease)}
html.nfy-js [data-nfy].nfy-shown{opacity:1;transform:none}
@media (scripting:none){[data-nfy]{opacity:1!important;transform:none!important}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  html.nfy-js [data-nfy]{opacity:1!important;transform:none!important}
}

/* --- responsive ---------------------------------------------------------------- */
/* The phone in the bar needs room the nav also wants. Drop it first, then
   tighten the nav, rather than letting the menu wrap onto two lines. */
@media (max-width:1180px){
  .nfy-bar__tel{display:none}
  .nfy-menu,.nfy-menu ul{gap:20px}
}
@media (max-width:1000px){
  .nfy-menu,.nfy-menu ul{gap:15px}
  .nfy-menu a{font-size:.88rem}
  .nfy-g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nfy-g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nfy-split{grid-template-columns:1fr}
  .nfy-foot__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
  :root{--nfy-gut:18px}
  .nfy-toggle{display:flex}
  .nfy-bar__tel{display:none}
  .nfy-menu{
    position:fixed;inset:var(--nfy-bar) 0 auto 0;background:var(--nfy-cream);border-bottom:1px solid var(--nfy-line);
    flex-direction:column;align-items:stretch;gap:0;padding:10px var(--nfy-gut) 22px;
    transform:translateY(-130%);transition:transform .38s var(--nfy-ease);
    max-height:calc(100vh - var(--nfy-bar));overflow:auto}
  body.admin-bar .nfy-menu{top:calc(var(--nfy-bar) + 32px)}
  body.nfy-nav-open .nfy-menu{transform:translateY(0)}
  .nfy-menu ul{flex-direction:column;align-items:stretch;gap:0}
  .nfy-menu a{display:block;padding:13px 0;border-bottom:1px solid var(--nfy-line);font-size:1rem}
  .nfy-g2,.nfy-g3,.nfy-g4,.nfy-f2{grid-template-columns:1fr}
  .nfy-fan{flex-direction:column;align-items:center;gap:14px;perspective:none}
  .nfy-rec,.nfy-fan:hover .nfy-rec{transform:none!important;margin:0!important}
  .nfy-rec:nth-child(3){display:none}
  .nfy-foot__grid{grid-template-columns:1fr}
  .nfy-facts__r{grid-template-columns:1fr;gap:5px}
}
