/* Forgiveness & Gratitude™ — public brand authority refinement layer */

/* Header optical-size brand system: master mark stays official; micro mark serves navigation. */
.brand-mark-picture{
  width:56px;
  height:56px;
  flex:0 0 56px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:17px;
  background:#fff9f8;
  filter:drop-shadow(0 10px 20px rgba(86,48,52,.16)) drop-shadow(0 0 1px rgba(74,45,47,.18));
}
.brand-logo-img{
  width:56px;
  height:56px;
  flex:0 0 56px;
  display:block;
  object-fit:contain;
  object-position:center;
  border-radius:0;
  transform:translateY(-6.8%);
}
.site-header .brand{
  min-width:390px;
  gap:14px;
}
.site-header .brand-copy{
  gap:3px;
  min-width:0;
}
.site-header .brand-copy strong{
  font-size:20px;
  white-space:nowrap;
}
.site-header .brand-copy small{
  display:block;
  margin:0;
  font-size:8px;
  line-height:1.25;
  letter-spacing:.07em;
  color:#8a737c;
  font-weight:400;
  text-transform:none;
  white-space:nowrap;
}
.site-header .nav-links a,
.site-header .nav-cta,
.site-header .brand-copy small{
  font-family:"richmond-display",sans-serif;
  font-style:normal;
}
.site-header .nav-links a{font-weight:500}
.site-header .nav-cta{font-weight:600}
.brand-copy strong sup,.topic-nav .home sup,.brand-tm{
  font-family:var(--font-ui);
  font-size:.48em;
  font-weight:500;
  letter-spacing:0;
  vertical-align:super;
  margin-left:.08em;
}
.section-title h2,
.section-head h2,
.brands .section-wrap>div:first-child h2,
.brand-proposition h3,
.contact-card h2,
.north-star-heading h3,
.ip-card h3{
  text-wrap:balance;
}
.brand-flow-visual{
  width:min(520px,100%);
  margin:0 auto;
  display:block;
  filter:drop-shadow(0 26px 38px rgba(111,74,78,.12));
  animation:fngFlowFloat 10s ease-in-out infinite alternate;
}

/* Homepage North Star */
.north-star-panel{
  margin-top:64px;
  padding:54px;
  border-radius:34px;
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:54px;
  align-items:start;
  background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(250,239,242,.40));
}
.north-star-heading h3{
  margin:0;
  font-family:var(--font-brand);
  font-size:clamp(42px,5vw,68px);
  line-height:.98;
  letter-spacing:-.04em;
  font-weight:500;
  color:#362a31;
}
.north-star-intro{
  margin:0 0 26px;
  font-family:var(--font-brand);
  font-size:clamp(23px,2.3vw,32px);
  line-height:1.28;
  color:#4b3d44;
}
.north-star-principles{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 24px;
  margin:8px 0 24px;
}
.north-star-principles p{
  margin:0;
  padding:15px 0;
  border-top:1px solid rgba(112,47,66,.12);
  color:#66575e;
  font-size:14px;
  line-height:1.55;
}
.north-star-values{
  margin:0;
  padding:22px 0 0;
  border-top:1px solid rgba(112,47,66,.12);
  color:#5e5057;
  font-size:16px;
  line-height:1.7;
}
.north-star-quote{
  margin:28px 0 0;
  padding:22px 0 0;
  border-top:1px solid rgba(112,47,66,.12);
  font-family:var(--font-soul);
  font-style:italic;
  color:#875061;
  font-size:clamp(22px,2vw,30px);
  line-height:1.35;
}
.north-star-quote strong{font-weight:400;color:#6f3447}

/* Homepage public IP authority */
.registration-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:22px;
}
.registration-pill{min-width:0;
  overflow:hidden;
  border:1px solid rgba(136,86,104,.14);
  border-radius:16px;
  padding:12px 13px;
  background:linear-gradient(145deg,rgba(255,255,255,.70),rgba(250,239,242,.46));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92);
}
.registration-pill span{
  display:block;
  font-size:8px;
  line-height:1.35;
  text-transform:uppercase;
  letter-spacing:.13em;
  color:#8a737c;
  margin-bottom:5px;
}
.registration-pill strong{
  display:block;
  max-width:100%;
  font-family:var(--font-brand);
  font-size:clamp(13px,1.15vw,15px);
  line-height:1.15;
  font-weight:500;
  color:#49363f;
  overflow-wrap:anywhere;
  word-break:break-word;
  font-variant-numeric:lining-nums tabular-nums;
}

.protected-innovation{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 14%,rgba(232,184,194,.20),transparent 34%),
    linear-gradient(135deg,#fffaf8,#f8eff2 58%,#f2f5fa);
}
.protected-innovation .portfolio-grid{align-items:center}
.protected-innovation .portfolio-copy .lead{max-width:760px}
.ip-intro{
  color:#68575f;
  font-size:17px;
  line-height:1.72;
  margin:0 0 30px;
}
.ip-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:28px;
}
.ip-card{
  min-height:220px;
  padding:28px;
  border-radius:26px;
  border:1px solid rgba(255,255,255,.88);
  background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(250,239,242,.40));
  box-shadow:0 18px 46px rgba(109,70,83,.07),inset 0 1px 0 #fff;
  backdrop-filter:blur(20px) saturate(130%);
  -webkit-backdrop-filter:blur(20px) saturate(130%);
}
.ip-card .ip-label{
  display:block;
  color:#9f5f70;
  font-size:9px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:16px;
}
.ip-card h3{
  margin:0 0 12px;
  font-family:var(--font-brand);
  font-size:30px;
  line-height:1.02;
  font-weight:500;
  color:#3c3036;
}
.ip-card p{
  margin:0;
  color:#6d5e64;
  font-size:14px;
  line-height:1.65;
}
.ip-disclosure{
  margin:26px 0 0;
  padding-top:18px;
  border-top:1px solid rgba(112,47,66,.12);
  font-family:var(--font-soul);
  font-style:italic;
  color:#875061;
  font-size:20px;
  line-height:1.45;
}
.protected-innovation .flow-wrap{
  margin:26px 0 8px;
  max-width:440px;
}

/* Topic pages */
.topic-nav .home{
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.topic-nav .home::before{
  content:"";
  width:32px;
  height:32px;
  flex:0 0 32px;
  border-radius:9px;
  background:url("assets/fng-mark-header.png") center/contain no-repeat;
  filter:drop-shadow(0 6px 13px rgba(86,48,52,.15));
}
.topic-section{
  margin-top:28px;
}
.topic-section .topic-card>p:last-child{margin-bottom:0}
.topic-registration{
  margin-top:22px;
}
.topic-brand-note{
  margin-top:22px;
  font-family:var(--font-soul);
  font-style:italic;
  color:#8c5364;
  font-size:20px;
  line-height:1.45;
}

/* Film editorial enrichment */
.story-guide{
  width:min(1040px,calc(100vw - 40px));
  margin:24px auto 80px;
  padding:34px;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.82);
  background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(248,236,240,.43));
  box-shadow:0 20px 56px rgba(100,65,78,.08),inset 0 1px 0 #fff;
}
.story-guide .topic-kicker{margin-bottom:10px}
.story-guide h2{
  font-family:var(--font-brand);
  font-size:clamp(34px,4vw,56px);
  font-weight:500;
  line-height:1;
  margin:0 0 14px;
}
.story-guide>p{
  max-width:820px;
  color:#675a60;
  font-size:16px;
  line-height:1.7;
}
.story-guide-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin-top:28px;
}
.story-step{
  min-height:118px;
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(136,86,104,.11);
  background:rgba(255,255,255,.58);
}
.story-step b{
  display:block;
  color:#a35f71;
  font-size:9px;
  letter-spacing:.18em;
  margin-bottom:9px;
}
.story-step span{
  display:block;
  font-family:var(--font-brand);
  font-size:18px;
  line-height:1.12;
  color:#46383f;
}

/* Footer brand artwork: approved PNG in normal document flow; size only. */
.footer-brand{
  min-height:44px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
  align-items:center;
}
.footer-logo-shell{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:13px;
  background:#fff9f8;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.22));
}
.footer-logo-img{
  width:44px;
  height:44px;
  display:block;
  object-fit:contain;
  object-position:center;
  transform:translateY(-6.8%);
}
.footer-brand-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.footer-brand-copy>span{
  font-family:"richmond-display",sans-serif;
  font-weight:400;
  font-style:normal;
  font-size:10px;
  letter-spacing:.07em;
}

/* Legal pages */
.legal-shell{
  max-width:820px;
  margin:auto;
}
.legal-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:54px;
  font-family:var(--font-brand);
  font-size:18px;
  font-weight:500;
}
.legal-brand img{width:38px;height:38px;border-radius:11px}
.legal-shell h1{
  font-family:var(--font-brand);
  font-size:clamp(48px,6vw,68px);
  font-weight:500;
  letter-spacing:-.035em;
}
.legal-shell p{font-size:16px;line-height:1.75;color:#62575c}

@keyframes fngFlowFloat{
  from{transform:translate3d(0,0,0) rotate(-1deg)}
  to{transform:translate3d(0,-8px,0) rotate(1deg)}
}

@media(max-width:900px){
  .north-star-panel{grid-template-columns:1fr;padding:38px;gap:30px}
  .north-star-principles{grid-template-columns:1fr}
  .registration-strip{grid-template-columns:1fr}
  .ip-grid{grid-template-columns:1fr}
  .story-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-header .nav-shell{gap:16px}
  .site-header .brand{min-width:0;gap:11px}
  .brand-mark-picture{width:48px;height:48px;flex:0 0 48px;border-radius:15px}
  .brand-logo-img{width:48px;height:48px;flex-basis:48px}
  .site-header .brand-copy strong{font-size:17px}
  .site-header .brand-copy small{display:block;font-size:7.25px;line-height:1.25;letter-spacing:.055em;white-space:normal;max-width:300px}
}

@media(max-width:620px){
  .editorial-break{display:none}
  .north-star-panel{margin-top:42px;padding:28px;border-radius:26px}
  .story-guide{padding:24px;width:min(100% - 24px,1040px)}
  .story-guide-grid{grid-template-columns:1fr}
  .site-header .nav-shell{gap:10px}
  .site-header .brand-copy strong{font-size:14.5px}
  .site-header .brand-copy small{font-size:6.4px;line-height:1.22;letter-spacing:.04em;max-width:190px}
  .footer-brand{min-height:40px;grid-template-columns:40px minmax(0,1fr);gap:10px}
  .footer-logo-shell{width:40px;height:40px;border-radius:12px}
  .footer-logo-img{width:40px;height:40px}
}

@media(max-width:420px){
  .site-header .nav-shell{padding:0 10px;gap:8px}
  .brand-mark-picture{width:42px;height:42px;flex:0 0 42px;border-radius:13px}
  .brand-logo-img{width:42px;height:42px;flex-basis:42px}
  .site-header .brand{gap:8px}
  .site-header .brand-copy strong{font-size:12.8px;letter-spacing:-.025em}
  .site-header .brand-copy small{display:none}
  .hero h1{font-size:clamp(46px,15vw,56px)}
  .section-title h2,.section-head h2{font-size:46px}
  .contact-card .button{font-size:9px;line-height:1.25;padding:0 12px;text-transform:none;letter-spacing:.04em;overflow-wrap:anywhere;word-break:break-word}
}

@media(prefers-reduced-motion:reduce){
  .brand-flow-visual{animation:none}
}


/* Section 05 approved flow mark — optical placement fix.
   Preserve the approved symbol geometry while removing the cut-out/white-card appearance. */
.protected-innovation .flow-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:250px;
  max-width:500px;
  margin:30px 0 4px;
}
.protected-innovation .brand-flow-visual{
  width:min(440px,88%);
  height:auto;
  margin:0 auto;
  padding:18px 22px;
  box-sizing:border-box;
  mix-blend-mode:multiply;
  object-fit:contain;
  object-position:center;
}
@media(max-width:920px){
  .protected-innovation .flow-wrap{
    min-height:220px;
    max-width:520px;
    margin:22px auto 2px;
  }
  .protected-innovation .brand-flow-visual{
    width:min(480px,92%);
    padding:16px 18px;
  }
}
@media(max-width:680px){
  .protected-innovation .flow-wrap{
    min-height:190px;
  }
  .protected-innovation .brand-flow-visual{
    width:94%;
    padding:14px 16px;
  }
}


/* Section 05 final — original Logo 2 master-symbol extract. */
.protected-innovation .flow-wrap{
  max-width:540px;
  min-height:250px;
  margin:28px 0 4px;
}
.protected-innovation .brand-flow-visual{
  width:min(520px,96%);
  height:auto;
  padding:0;
  margin:0 auto;
  object-fit:contain;
  object-position:center;
  mix-blend-mode:multiply;
}
@media(max-width:920px){
  .protected-innovation .flow-wrap{
    max-width:560px;
    min-height:220px;
    margin:20px auto 2px;
  }
  .protected-innovation .brand-flow-visual{
    width:min(520px,98%);
    padding:0;
  }
}
@media(max-width:680px){
  .protected-innovation .flow-wrap{min-height:180px}
  .protected-innovation .brand-flow-visual{width:100%;padding:0}
}

