/*
 * NGF Productions — approved light landing page (front page only).
 * Visual source of truth: approved landing-page mockup, 2026-09-26.
 * Loaded only when is_front_page(); interior and legal pages are unaffected.
 */
@font-face{
  font-family:"NGF Serif";
  src:url("../fonts/libre-baskerville-latin-700-normal.woff2") format("woff2");
  font-weight:700;font-style:normal;font-display:swap;
}
body.home{
  --lp-red:#c8061c; --lp-red-hover:#a90417; --lp-navy:#031a2f; --lp-ink:#141e2f;
  --lp-text:#3a4252; --lp-muted:#5b6474; --lp-line:#e4e6ea;
  --lp-serif:"NGF Serif",Georgia,"Times New Roman",serif;
  --lp-sans:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  background:#fff;color:var(--lp-ink);font-family:var(--lp-sans);
}
.ngf-lp-wrap{width:100%;max-width:1680px;margin:0 auto;padding-inline:clamp(16px,4.4vw,80px)}
.ngf-lp h1,.ngf-lp h2,.ngf-lp h3{font-family:var(--lp-serif);font-weight:700;color:var(--lp-ink);letter-spacing:-.02em;text-transform:none;margin:0}
.ngf-lp p{margin:0}
.ngf-lp img{display:block}
body.home a:focus-visible,body.home button:focus-visible{outline:3px solid var(--lp-red);outline-offset:3px}

/* Eyebrows with trailing rule */
.ngf-lp-kicker{display:flex;align-items:center;gap:14px;font-size:clamp(.66rem,.78vw,.8rem);font-weight:700;letter-spacing:.3em;text-transform:uppercase;margin-bottom:clamp(6px,.6vw,12px)}
.ngf-lp-kicker:after{content:"";width:clamp(40px,4.4vw,72px);height:2px;background:currentColor}
.ngf-lp-kicker-ink{color:var(--lp-ink)}
.ngf-lp-kicker-ink:after{background:var(--lp-red)}
.ngf-lp-kicker-red{color:var(--lp-red);letter-spacing:.24em}
.ngf-lp-kicker-light{color:#fff;letter-spacing:.2em}

/* Buttons */
.ngf-lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--lp-sans);font-weight:600;font-size:clamp(.86rem,.95vw,.98rem);line-height:1;border-radius:3px;padding:.78em 1.6em;border:2px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}
.ngf-lp-btn-red{background:var(--lp-red);color:#fff}
.ngf-lp-btn-red:hover{background:var(--lp-red-hover)}
.ngf-lp-btn-outline{background:#fff;color:var(--lp-ink);border-color:var(--lp-ink);border-width:1px;min-width:10.5em}
.ngf-lp-btn-outline:hover{background:var(--lp-ink);color:#fff}
.ngf-lp-btn-sm{font-size:clamp(.8rem,.86vw,.9rem);padding:.6em 2.3em}

/* Header */
.ngf-lp-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--lp-line)}
.ngf-lp-nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:clamp(56px,3.8vw,64px)}
.ngf-lp-logo img{height:clamp(42px,3.7vw,62px);width:auto}
.ngf-lp-menu{display:flex;align-items:center;gap:clamp(14px,1.7vw,32px);white-space:nowrap;font-size:clamp(.86rem,.9vw,.95rem);font-weight:500;color:var(--lp-ink)}
.ngf-lp-menu a{position:relative;padding:8px 0}
.ngf-lp-menu a:hover{color:var(--lp-red)}
.ngf-lp-menu a[aria-current="page"]{font-weight:600}
.ngf-lp-menu a[aria-current="page"]:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--lp-red)}
.ngf-lp-menu .ngf-lp-contact{color:var(--lp-red);border:1px solid currentColor;padding:8px 14px;border-radius:4px}

/* Hero */
.ngf-lp-hero{position:relative;overflow:hidden;background:#faf8f6}
.ngf-lp-hero-media{position:absolute;top:0;right:0;bottom:0;width:66.5%}
.ngf-lp-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.ngf-lp-hero-media:before{content:"";position:absolute;inset:0 auto 0 0;width:32%;background:linear-gradient(90deg,#faf8f6 0%,rgba(250,248,246,.75) 40%,rgba(250,248,246,0) 100%);z-index:1}
.ngf-lp-hero-inner{position:relative;z-index:2;padding-block:clamp(20px,1.7vw,32px) clamp(20px,1.6vw,30px)}
.ngf-lp-hero-inner>*{max-width:min(600px,36vw)}
.ngf-lp-hero h1{font-size:clamp(2.3rem,3.02vw,3.2rem);line-height:.98;margin-bottom:clamp(6px,.6vw,12px)}
.ngf-lp-hero-sub{font-family:var(--lp-serif);font-weight:700;color:var(--lp-ink);font-size:clamp(1.05rem,1.36vw,1.45rem);line-height:1.1;letter-spacing:-.015em;margin-bottom:clamp(6px,.5vw,10px)!important}
.ngf-lp-hero-text{color:var(--lp-text);font-size:clamp(.95rem,1.02vw,1.08rem);line-height:1.25;max-width:min(430px,28vw)!important}
.ngf-lp-actions{display:flex;flex-wrap:wrap;gap:clamp(12px,1.4vw,24px);margin-top:clamp(10px,.8vw,16px)}
.ngf-lp-br{display:inline}

/* About row */
.ngf-lp-about-row{display:grid;grid-template-columns:49% 51%;align-items:stretch;background:#fff;padding-top:5px}
.ngf-lp-photos{display:grid;grid-template-columns:396fr 419fr;gap:5px}
.ngf-lp-photos img{width:100%;height:100%;min-height:8.8vw;object-fit:cover}
.ngf-lp-about-card{position:relative;z-index:3;background:#fff;margin-bottom:-1.4vw;padding:clamp(8px,.55vw,12px) clamp(16px,1.3vw,24px) clamp(10px,.75vw,14px) clamp(18px,3.6vw,60px)}
.ngf-lp-about-card h2{font-size:clamp(1.2rem,1.5vw,1.6rem);line-height:1.04;margin-bottom:clamp(6px,.45vw,10px)}
.ngf-lp-about-body{display:grid;grid-template-columns:1fr auto;gap:clamp(12px,1.1vw,20px);align-items:center}
.ngf-lp-about-body p{color:var(--lp-text);font-size:clamp(.78rem,.78vw,.86rem);line-height:1.26;margin-bottom:clamp(6px,.45vw,8px)}
.ngf-lp-badge{display:flex;align-items:center;gap:clamp(10px,.9vw,16px)}
.ngf-lp-badge img{width:clamp(40px,3.6vw,60px);height:auto;padding-right:clamp(10px,.9vw,16px);border-right:1px solid var(--lp-ink)}
.ngf-lp-badge span{font-size:clamp(.66rem,.74vw,.78rem);font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.3;color:var(--lp-ink)}

/* Community mission band */
.ngf-lp-mission{position:relative;background:var(--lp-navy);color:#fff;margin-top:6px;overflow:hidden;z-index:1;min-height:9.75vw}
.ngf-lp-mission-media{position:absolute;top:0;right:0;bottom:0;width:53%}
.ngf-lp-mission-media img{width:100%;height:100%;object-fit:cover;object-position:right bottom}
.ngf-lp-mission-media:before{content:"";position:absolute;inset:0 auto 0 0;width:38%;background:linear-gradient(90deg,var(--lp-navy) 0%,rgba(3,26,47,.6) 45%,rgba(3,26,47,0) 100%)}
.ngf-lp-mission-inner{position:relative;z-index:2;padding-block:clamp(16px,1.3vw,24px) clamp(14px,1.1vw,20px)}
.ngf-lp-mission-inner>*{max-width:min(900px,52vw)}
.ngf-lp-mission h2{color:#fff;font-size:clamp(1.45rem,1.95vw,2.15rem);line-height:1.1;margin-bottom:clamp(8px,.8vw,14px)}
.ngf-lp-mission p{max-width:min(760px,45vw)!important;color:#eef1f5;font-size:clamp(.86rem,.92vw,.98rem);line-height:1.3;margin-bottom:clamp(12px,1.1vw,18px)}

/* What we do */
.ngf-lp-wwd{background:#fff;padding-block:clamp(20px,1.7vw,30px) clamp(24px,1.9vw,34px)}
.ngf-lp-wwd-grid{display:grid;grid-template-columns:minmax(0,37fr) minmax(0,58fr);gap:clamp(24px,3.2vw,56px);align-items:start}
.ngf-lp-wwd-intro{padding-top:clamp(6px,.9vw,16px)}
.ngf-lp-wwd h2{font-size:clamp(1.5rem,1.78vw,2rem);line-height:1.1;margin-bottom:clamp(10px,1vw,16px)}
.ngf-lp-wwd-intro p{color:var(--lp-text);font-size:clamp(.86rem,.9vw,.96rem);line-height:1.45}
.ngf-lp-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.25vw,22px)}
.ngf-lp-card{background:#fff;box-shadow:0 2px 10px rgba(20,30,47,.1);border-radius:4px;padding-bottom:clamp(10px,.9vw,16px)}
.ngf-lp-card-media{position:relative}
.ngf-lp-card-media img{width:100%;aspect-ratio:214/62;height:auto;object-fit:cover;border-radius:4px 4px 0 0}
.ngf-lp-card-icon{position:absolute;left:var(--icon-x,17%);top:92%;transform:translate(-50%,-50%);width:21%;aspect-ratio:1;border-radius:50%;background:var(--lp-red);border:2px solid #fff;display:grid;place-items:center}
.ngf-lp-card-icon svg{width:58%;height:58%;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ngf-lp-card h3{font-size:clamp(.88rem,.92vw,1rem);line-height:1.08;margin:calc(8.5% + 4px) 8% 6px;letter-spacing:-.01em}
.ngf-lp-card p{color:var(--lp-text);font-size:clamp(.72rem,.74vw,.8rem);line-height:1.3;margin:0 8%}

/* Footer */
.ngf-lp-footer{background:var(--lp-navy);color:#fff}
.ngf-lp-footer-row{display:flex;align-items:center;justify-content:space-between;gap:clamp(16px,2vw,36px);min-height:clamp(52px,3.1vw,56px);flex-wrap:wrap;padding-block:6px}
.ngf-lp-footer-brand{display:flex;align-items:center;gap:clamp(12px,1.3vw,22px)}
.ngf-lp-footer-brand img{height:clamp(34px,2.7vw,45px);width:auto}
.ngf-lp-footer-brand small{font-size:clamp(.62rem,.58vw,.66rem);color:#dfe4ea}
.ngf-lp-privacy{margin-left:.5em;text-decoration:underline;text-underline-offset:2px}
.ngf-lp-privacy:hover{color:#fff}
.ngf-lp-footer-links{display:flex;gap:clamp(18px,2.4vw,40px);font-size:clamp(.74rem,.72vw,.8rem)}
.ngf-lp-footer-links a:hover{color:#ff9aa5}
.ngf-lp-social{display:flex;align-items:center;gap:clamp(14px,1.3vw,22px);padding-left:clamp(16px,3.6vw,60px);border-left:1px solid rgba(255,255,255,.55)}
.ngf-lp-social svg{width:22px;height:22px;fill:#fff}
.ngf-lp-footer-motto{display:flex;align-items:center;gap:14px;margin:0;font-size:clamp(.85rem,.9vw,.96rem)}
.ngf-lp-footer-motto:before{content:"";width:clamp(34px,3.4vw,58px);height:2px;background:var(--lp-red)}

/* Tablet */
@media (max-width:1100px){
  .ngf-lp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ngf-lp-wwd-grid{grid-template-columns:1fr}
  .ngf-lp-footer-row{justify-content:center}
}
/* Mobile */
@media (max-width:900px){
  .ngf-lp-nav{flex-wrap:wrap;gap:8px;padding-block:8px}
  .ngf-lp-menu{width:100%;justify-content:center;flex-wrap:wrap;gap:6px 20px}
  .ngf-lp-hero-media{position:relative;width:100%;aspect-ratio:1112/332;min-height:180px}
  .ngf-lp-hero-media:before{display:none}
  .ngf-lp-br{display:none}
  .ngf-lp-hero-inner>*,.ngf-lp-hero-text{max-width:620px!important}
  .ngf-lp-about-row{grid-template-columns:1fr}
  .ngf-lp-photos img{min-height:0;aspect-ratio:396/147;height:auto}
  .ngf-lp-photos img+img{aspect-ratio:419/147}
  .ngf-lp-about-card{margin-bottom:0;padding:22px clamp(16px,4.4vw,40px)}
  .ngf-lp-about-body{grid-template-columns:1fr}
  .ngf-lp-mission-media{position:relative;width:100%;aspect-ratio:882/138;min-height:120px}
  .ngf-lp-mission{min-height:0}
  .ngf-lp-mission p{max-width:none!important}
  .ngf-lp-mission-media:before{display:none}
  .ngf-lp-mission-inner>*{max-width:none}
  .ngf-lp-footer-row{flex-direction:column;align-items:center;text-align:center;padding-block:18px;gap:14px}
  .ngf-lp-footer-brand{flex-direction:column}
  .ngf-lp-social{border-left:0;padding-left:0}
}
@media (max-width:520px){
  .ngf-lp-logo img{height:40px}
  .ngf-lp-menu{gap:4px 14px;font-size:.8rem}
  .ngf-lp-card h3{font-size:.84rem}
}

/* Preview: owner supplied official corporate logo in the landing header. */
.ngf-lp-nav{min-height:116px}
.ngf-lp-logo img{width:170px;height:auto;max-height:112px;object-fit:contain}
@media(max-width:900px){.ngf-lp-nav{min-height:0}}
@media(max-width:520px){.ngf-lp-logo img{width:140px;height:auto;max-height:none}}
