/* FamilyGR 2.0 — Scoped front-end styles. */
/* FamilyGR 2.0 follows the Calm Knowledge Home system: Arabic-first Noto Kufi/Cairo, restrained hierarchy, and a three-path future-products composition. */
.fgr2 {
  --fgr-forest-900: #163f35;
  --fgr-forest-700: #2d6657;
  --fgr-cream-50: #fcf8f0;
  --fgr-sand-100: #eee5d7;
  --fgr-gold-500: #cda94e;
  --fgr-coral-500: #d66e58;
  --fgr-ink-900: #18313a;
  --fgr-ink-700: #4d5b62;
  --fgr-mist-100: #eaf3ef;
  --fgr-white: #fff;
  --fgr-radius-lg: 24px;
  --fgr-radius-md: 16px;
  --fgr-shadow: 0 20px 48px rgba(22, 63, 53, .12);
  --fgr-shell: min(1200px, calc(100% - 48px));
  color: var(--fgr-ink-900);
  background: var(--fgr-cream-50);
  font-family: "Noto Kufi Arabic", "Cairo", Tahoma, Arial, sans-serif;
  line-height: 1.7;
  overflow: clip;
}

.fgr2 *, .fgr2 *::before, .fgr2 *::after { box-sizing: border-box; }
.fgr2 img { display: block; max-width: 100%; }
body.fgr-en .fgr2, [dir="ltr"] .fgr2 { font-family: "DM Sans", Arial, sans-serif; }
.fgr2 h1, .fgr2 h2, .fgr2 h3, .fgr2 p { margin: 0; }
.fgr2 a { color: inherit; text-decoration: none; }
.fgr2 button { font: inherit; }
.fgr2-shell { width: var(--fgr-shell); margin-inline: auto; }
.fgr2-section { padding: 112px 0; position: relative; }
.fgr2-section--light { background: var(--fgr-white); }
.fgr2-section--product { background: var(--fgr-mist-100); }
.fgr2-section--problem { background: var(--fgr-forest-900); color: var(--fgr-white); }
.fgr2-section--cycle { background: linear-gradient(180deg, #fcf8f0 0%, #f5efe4 100%); }
.fgr2-section--age { background: var(--fgr-white); }
.fgr2-section--ecosystem { background: #f4f0e8; }
.fgr2-section--trust { background: var(--fgr-white); }
.fgr2-eyebrow { color: var(--fgr-forest-700); font-size: .77rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.fgr2-section--problem .fgr2-eyebrow, .fgr2-final-cta .fgr2-eyebrow { color: #ead38b; }
.fgr2-section-heading { max-width: 780px; margin-bottom: 48px; }
.fgr2-section-heading--center { margin-inline: auto; text-align: center; }
.fgr2-section-heading h2 { font-size: clamp(1.7rem, 3vw, 2.55rem); line-height: 1.32; letter-spacing: -.02em; margin-top: 10px; max-width: 18ch; }
.fgr2-section-heading p:not(.fgr2-eyebrow) { color: var(--fgr-ink-700); font-size: 1.08rem; margin-top: 16px; }
.fgr2-button { align-items: center; border-radius: 999px; display: inline-flex; font-weight: 800; gap: 12px; justify-content: center; min-height: 48px; padding: 12px 22px; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.fgr2-button:hover { transform: translateY(-2px); }
.fgr2-button:focus-visible, .fgr2 a:focus-visible, .fgr2 button:focus-visible { outline: 3px solid var(--fgr-gold-500); outline-offset: 4px; }
.fgr2-button--primary { background: var(--fgr-coral-500); box-shadow: 0 12px 24px rgba(214, 110, 88, .24); color: #fff; }
.fgr2-button--primary:hover { background: #be5846; }
.fgr2-button--ghost { background: rgba(255,255,255,.62); border: 1px solid rgba(24,49,58,.18); color: var(--fgr-ink-900); }
.fgr2-button--ghost:hover { background: #fff; }
.fgr2-text-link { color: var(--fgr-forest-700); display: inline-flex; font-weight: 800; gap: 8px; margin-top: 30px; }
.fgr2-text-link:hover { color: var(--fgr-coral-500); }

/* Hero */
.fgr2-hero { background: var(--fgr-cream-50); min-height: min(830px, 92vh); padding: 76px 0 64px; position: relative; }
.fgr2-hero::before { background: radial-gradient(circle at 85% 20%, rgba(205,169,78,.18), transparent 26%), radial-gradient(circle at 16% 82%, rgba(45,102,87,.1), transparent 30%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.fgr2-hero__grid { align-items: center; display: grid; gap: 48px; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); min-height: 690px; position: relative; }
.fgr2-hero__content { max-width: 570px; position: relative; z-index: 2; }
.fgr2-hero h1 { color: var(--fgr-forest-900); font-size: clamp(2.35rem, 4.1vw, 3.5rem); letter-spacing: -.03em; line-height: 1.2; margin-top: 14px; max-width: 12ch; }
.fgr2-lead { color: var(--fgr-ink-700); font-size: clamp(1.02rem, 1.7vw, 1.22rem); margin-top: 26px; max-width: 620px; }
.fgr2-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.fgr2-note { color: #65736d; font-size: .9rem; margin-top: 18px; }
.fgr2-hero__visual { min-height: 590px; position: relative; }
.fgr2-hero__visual > img { border-radius: 30px; box-shadow: var(--fgr-shadow); height: 100%; min-height: 590px; object-fit: cover; object-position: 24% center; width: 100%; }
.fgr2-growth-card { background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.82); border-radius: 20px; bottom: 26px; box-shadow: 0 18px 40px rgba(22,63,53,.17); max-width: 230px; padding: 18px; position: absolute; right: 22px; }
[dir="rtl"] .fgr2-growth-card { left: 22px; right: auto; }
.fgr2-growth-card__label { color: var(--fgr-ink-700); font-size: .8rem; font-weight: 700; }
.fgr2-growth-card__metric { align-items: baseline; display: flex; gap: 7px; margin: 8px 0 11px; }
.fgr2-growth-card__metric strong { color: var(--fgr-forest-900); font-size: 1.75rem; line-height: 1; }
.fgr2-growth-card__metric span:last-child { color: var(--fgr-ink-700); font-size: .77rem; }
.fgr2-spark { color: var(--fgr-gold-500); font-size: 1.3rem; }
.fgr2-mini-progress { background: var(--fgr-sand-100); border-radius: 999px; height: 7px; overflow: hidden; }
.fgr2-mini-progress span { background: var(--fgr-forest-700); border-radius: inherit; display: block; height: 100%; }
.fgr2-growth-card small { color: #78837e; display: block; font-size: .65rem; margin-top: 9px; }

/* Problem and solution */
.fgr2-problem-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, 1fr); }
.fgr2-problem-card { border: 1px solid rgba(255,255,255,.14); border-radius: var(--fgr-radius-md); padding: 24px; }
.fgr2-problem-card .fgr2-icon-orb { background: rgba(255,255,255,.11); color: #ead38b; }
.fgr2-problem-card h3 { font-size: 1.15rem; margin-top: 18px; }
.fgr2-problem-card p { color: rgba(255,255,255,.75); font-size: .94rem; margin-top: 8px; }
.fgr2-statement { color: #ead38b; font-size: clamp(1.35rem, 2.4vw, 1.8rem); font-weight: 750; margin-top: 42px; max-width: 700px; }
.fgr2-icon-orb { align-items: center; background: var(--fgr-mist-100); border-radius: 50%; color: var(--fgr-forest-700); display: inline-flex; font-size: 1.25rem; height: 44px; justify-content: center; width: 44px; }
.fgr2-audience-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
.fgr2-audience-card { border: 1px solid rgba(24,49,58,.09); border-radius: var(--fgr-radius-lg); display: flex; flex-direction: column; min-height: 270px; padding: 30px; transition: transform .25s ease, box-shadow .25s ease; }
.fgr2-audience-card:hover { box-shadow: 0 18px 36px rgba(22,63,53,.09); transform: translateY(-4px); }
.fgr2-audience-card--parents { background: #eaf3ef; }
.fgr2-audience-card--kids { background: #fff5dd; }
.fgr2-audience-card--family { background: #fae9e3; }
.fgr2-audience-card > p { color: var(--fgr-forest-700); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fgr2-audience-card h3 { font-size: 1.45rem; line-height: 1.2; margin-top: 18px; }
.fgr2-audience-card > span { color: var(--fgr-ink-700); font-size: .95rem; margin-top: 11px; }
.fgr2-audience-card a { color: var(--fgr-forest-900); font-size: .92rem; font-weight: 800; margin-top: auto; padding-top: 24px; }

/* Cycle */
.fgr2-cycle { display: grid; gap: 16px; grid-template-columns: repeat(6, 1fr); }
.fgr2-cycle__step { background: rgba(255,255,255,.68); border: 1px solid rgba(22,63,53,.1); border-radius: 18px; min-height: 230px; padding: 20px; position: relative; }
.fgr2-cycle__number { color: var(--fgr-gold-500); display: block; font-size: .75rem; font-weight: 900; letter-spacing: .08em; }
.fgr2-cycle__icon { color: var(--fgr-forest-700); display: block; font-size: 1.5rem; margin-top: 20px; }
.fgr2-cycle__step h3 { color: var(--fgr-forest-900); font-size: 1.1rem; margin-top: 18px; }
.fgr2-cycle__step p { color: var(--fgr-ink-700); font-size: .84rem; margin-top: 7px; }

/* FamTodo product */
.fgr2-product-split { align-items: center; display: grid; gap: 56px; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); }
.fgr2-product-copy h2 { color: var(--fgr-forest-900); font-size: clamp(1.9rem, 3.2vw, 2.8rem); letter-spacing: -.025em; line-height: 1.25; margin-top: 10px; max-width: 15ch; }
.fgr2-product-copy h3 { font-size: clamp(1.45rem, 2.7vw, 2.1rem); line-height: 1.25; margin-top: 18px; }
.fgr2-product-copy > p { color: var(--fgr-ink-700); margin-top: 14px; }
.fgr2-check-list { color: var(--fgr-ink-900); list-style: none; margin: 24px 0 30px; padding: 0; }
.fgr2-check-list li { align-items: flex-start; display: flex; font-size: .95rem; gap: 10px; margin-top: 10px; }
.fgr2-check-list li::before { color: var(--fgr-forest-700); content: "✓"; font-weight: 900; }
.fgr2-dashboard-figure { margin: 0; }
.fgr2-dashboard-figure img { border-radius: 18px; box-shadow: 0 24px 46px rgba(22,63,53,.15); width: 100%; }
.fgr2-dashboard-figure figcaption, .fgr2-dashboard-frame > p { color: #65736d; font-size: .74rem; margin-top: 10px; text-align: center; }

/* Transformation */
.fgr2-section--transformation { background: var(--fgr-forest-900); color: #fff; }
.fgr2-section--transformation .fgr2-section-heading h2 { color: #fff; }
.fgr2-transformation { align-items: stretch; display: flex; justify-content: center; margin-top: 44px; }
.fgr2-transformation > div { align-items: center; display: flex; flex: 1; flex-direction: column; max-width: 210px; position: relative; text-align: center; }
.fgr2-transformation span { color: #ead38b; font-size: .75rem; font-weight: 900; letter-spacing: .08em; }
.fgr2-transformation strong { font-size: clamp(1.1rem, 2vw, 1.45rem); margin-top: 10px; }
.fgr2-transformation i { color: rgba(255,255,255,.45); font-size: 1.4rem; font-style: normal; position: absolute; right: -12px; top: 25px; }
[dir="rtl"] .fgr2-transformation i { left: -12px; right: auto; transform: scaleX(-1); }

/* Ages */
.fgr2-age-tabs { border-bottom: 1px solid rgba(24,49,58,.12); display: grid; grid-template-columns: repeat(5,1fr); margin-top: 40px; }
.fgr2-age-tabs button { background: transparent; border: 0; border-bottom: 3px solid transparent; color: var(--fgr-ink-700); cursor: pointer; padding: 15px 10px; text-align: center; }
.fgr2-age-tabs button[aria-selected="true"] { border-bottom-color: var(--fgr-coral-500); color: var(--fgr-forest-900); }
.fgr2-age-tabs strong, .fgr2-age-tabs span { display: block; }
.fgr2-age-tabs strong { font-size: 1.06rem; }
.fgr2-age-tabs span { font-size: .75rem; margin-top: 3px; }
.fgr2-age-panels { min-height: 164px; padding-top: 38px; text-align: center; }
.fgr2-age-panels [role="tabpanel"] { margin-inline: auto; max-width: 560px; }
.fgr2-age-panels span { color: var(--fgr-gold-500); font-weight: 900; }
.fgr2-age-panels h3 { color: var(--fgr-forest-900); font-size: 2rem; margin-top: 8px; }
.fgr2-age-panels p { color: var(--fgr-ink-700); margin-top: 10px; }

/* Growth areas */
.fgr2-area-grid { display: grid; gap: 18px; grid-template-columns: repeat(3,1fr); }
.fgr2-area-grid article { background: var(--fgr-cream-50); border: 1px solid rgba(24,49,58,.07); border-radius: var(--fgr-radius-md); padding: 26px; }
.fgr2-area-grid h3 { font-size: 1.15rem; margin-top: 15px; }
.fgr2-area-grid p { color: var(--fgr-ink-700); font-size: .92rem; margin-top: 7px; }

/* Resource cards */
.fgr2-resource-grid { display: grid; gap: 20px; grid-template-columns: repeat(3,1fr); }
.fgr2-resource-card { background: var(--fgr-white); border: 1px solid rgba(24,49,58,.1); border-radius: var(--fgr-radius-md); display: block; height: 100%; min-height: 220px; padding: 26px; transition: border-color .2s ease, transform .2s ease; }
.fgr2-resource-card:hover { border-color: var(--fgr-gold-500); transform: translateY(-3px); }
.fgr2-resource-card > span { color: var(--fgr-forest-700); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fgr2-resource-card h3 { font-size: 1.2rem; line-height: 1.35; margin-top: 14px; }
.fgr2-resource-card p { color: var(--fgr-ink-700); font-size: .9rem; margin-top: 10px; }
.fgr2-resource-card strong { color: var(--fgr-forest-700); display: block; font-size: .85rem; margin-top: 20px; }

/* Ecosystem and trust */
.fgr2-ecosystem-grid { display: grid; gap: 16px; grid-template-columns: repeat(4,1fr); }
.fgr2-ecosystem-grid article { background: rgba(255,255,255,.7); border: 1px solid rgba(24,49,58,.1); border-radius: var(--fgr-radius-md); min-height: 205px; padding: 24px; }
.fgr2-ecosystem-grid article.is-live { background: var(--fgr-forest-900); color: #fff; }
.fgr2-ecosystem-grid span { color: var(--fgr-gold-500); display: block; font-size: .7rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.fgr2-ecosystem-grid h3 { font-size: 1.35rem; margin-top: 26px; }
.fgr2-ecosystem-grid p { color: var(--fgr-ink-700); font-size: .88rem; margin-top: 10px; }
.fgr2-ecosystem-grid .is-live p { color: rgba(255,255,255,.76); }
.fgr2-trust-grid { align-items: center; display: grid; gap: 72px; grid-template-columns: 1.15fr .85fr; }
.fgr2-trust-grid h2 { font-size: clamp(2rem,4.5vw,3.3rem); letter-spacing: -.045em; line-height: 1.17; margin-top: 10px; }
.fgr2-trust-grid p { color: var(--fgr-ink-700); margin-top: 16px; max-width: 620px; }
.fgr2-trust-grid ul { border-inline-start: 1px solid var(--fgr-gold-500); list-style: none; margin: 0; padding: 0 0 0 30px; }
[dir="rtl"] .fgr2-trust-grid ul { padding: 0 30px 0 0; }
.fgr2-trust-grid li { color: var(--fgr-forest-900); font-weight: 700; margin: 17px 0; }
.fgr2-trust-grid li span { color: var(--fgr-gold-500); margin-inline-end: 9px; }

/* CTA */
.fgr2-final-cta { background: linear-gradient(120deg, #163f35 0%, #235b4e 55%, #1c4a40 100%); color: #fff; padding: 112px 0; position: relative; }
.fgr2-final-cta::after { background: radial-gradient(circle at 15% 20%, rgba(205,169,78,.24), transparent 26%), radial-gradient(circle at 90% 90%, rgba(214,110,88,.2), transparent 26%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.fgr2-final-cta__inner { max-width: 760px; position: relative; text-align: center; z-index: 1; }
.fgr2-final-cta h2 { font-size: clamp(1.9rem,3.3vw,2.8rem); letter-spacing: -.025em; line-height: 1.28; margin-top: 12px; }
.fgr2-final-cta p:not(.fgr2-eyebrow) { color: rgba(255,255,255,.8); margin: 18px auto 28px; max-width: 560px; }

/* Inner pages */
.fgr2-page-hero { background: linear-gradient(145deg, var(--fgr-cream-50) 0%, #f1e8d8 100%); padding: 112px 0 82px; }
.fgr2-page-hero--product { background: var(--fgr-mist-100); }
.fgr2-page-hero__inner { max-width: 850px; }
.fgr2-page-hero h1 { color: var(--fgr-forest-900); font-size: clamp(2.05rem,3.8vw,3.15rem); letter-spacing: -.025em; line-height: 1.25; margin-top: 12px; max-width: 16ch; }
.fgr2-example { align-items: center; background: var(--fgr-cream-50); border-radius: var(--fgr-radius-lg); display: grid; gap: 40px; grid-template-columns: 1fr 1fr; padding: 44px; }
.fgr2-example h2 { font-size: 2rem; margin-top: 10px; }
.fgr2-example p { color: var(--fgr-ink-700); margin-top: 14px; }
.fgr2-example ol { color: var(--fgr-ink-700); margin: 0; padding-inline-start: 22px; }
.fgr2-example li { margin: 14px 0; padding-inline-start: 7px; }
.fgr2-products-hero { background: linear-gradient(145deg, #fcf8f0 0%, #f1ebdf 100%); }
.fgr2-products-hero__layout { align-items: center; display: grid; gap: 54px; grid-template-columns: minmax(0,.94fr) minmax(390px,1.06fr); }
.fgr2-products-hero__link { align-items: center; border-bottom: 1px solid rgba(22,63,53,.25); color: var(--fgr-forest-900); display: inline-flex; font-size: .93rem; font-weight: 900; gap: 12px; margin-top: 30px; padding-bottom: 10px; }
.fgr2-products-hero__link img { background:#fff; border:1px solid rgba(22,63,53,.12); border-radius:8px; flex:0 0 auto; height:28px; object-fit:contain; object-position:center; padding:3px; width:28px; }
.fgr2-products-hero__link strong { color:var(--fgr-forest-900); font-family:"DM Sans",Arial,sans-serif; font-size:.9rem; letter-spacing:-.02em; }
.fgr2-products-hero__link span { color: var(--fgr-ink-700); font-size: .78rem; font-weight: 600; }
.fgr2-products-hero__link b { color: var(--fgr-gold-500); font-size: 1.15rem; }
.fgr2-family-hub-vision { background: #fffdf7; border: 1px solid rgba(22,63,53,.12); box-shadow: 0 24px 48px rgba(22,63,53,.12); margin: 0; padding: 12px; position: relative; }
.fgr2-family-hub-vision__brand { align-items: center; background: rgba(255,253,247,.94); border-bottom: 1px solid rgba(22,63,53,.1); display: flex; gap: 12px; justify-content: space-between; padding: 10px 12px; }
.fgr2-family-hub-vision__brand .custom-logo-link { display: inline-flex; }
.fgr2-family-hub-vision__brand .custom-logo-link img { height: 27px; object-fit: contain; width: auto; }
.fgr2-family-hub-vision__brand > span { color: var(--fgr-forest-900); font-family: "DM Sans", Arial, sans-serif; font-size: 1rem; font-weight: 900; }
.fgr2-family-hub-vision__brand > span strong { color: #159a83; }
.fgr2-family-hub-vision__brand small { color: var(--fgr-ink-700); font-size: .68rem; font-weight: 800; }
.fgr2-family-hub-vision > img { display: block; height: auto; max-height: 425px; object-fit: cover; object-position: center; width: 100%; }
.fgr2-family-hub-vision figcaption { color: var(--fgr-ink-700); font-size: .67rem; line-height: 1.7; padding: 9px 5px 1px; text-align: center; }
.fgr2-section--future-products { background: #f8f4eb; padding: 80px 0 112px; }
.fgr2-future-products__intro { margin-inline: auto; max-width: 820px; text-align: right; }
.fgr2-future-products__intro > p { color: var(--fgr-ink-700); font-size: 1rem; line-height: 2; margin-inline-start: auto; max-width: 720px; }
.fgr2-future-products__line { align-items: center; color: #806a38; display: flex; font-size: .76rem; gap: 10px; justify-content: flex-end; margin-top: 26px; }
.fgr2-future-products__line i { background: linear-gradient(90deg, transparent, var(--fgr-gold-500)); display: inline-block; height: 1px; width: 76px; }
[dir="rtl"] .fgr2-future-products__line i { background: linear-gradient(90deg, var(--fgr-gold-500), transparent); }
.fgr2-future-products__label { align-items: center; color: var(--fgr-forest-700); display: flex; font-size: .78rem; font-weight: 800; gap: 8px; margin-top: 46px; }
.fgr2-future-products__label span { background: var(--fgr-gold-500); border-radius: 50%; display: inline-block; height: 7px; width: 7px; }
.fgr2-future-products { display: grid; gap: 18px; grid-template-columns: repeat(3,1fr); margin-top: 18px; position: relative; }
.fgr2-future-products::before { background: rgba(22,63,53,.22); content: ""; height: 1px; left: 15%; position: absolute; right: 15%; top: 44px; z-index: 0; }
.fgr2-future-product { border: 1px solid rgba(24,49,58,.13); border-radius: 24px; display: flex; flex-direction: column; min-height: 382px; padding: 24px; position: relative; z-index: 1; }
.fgr2-future-product--learn { background: #e3eddf; }
.fgr2-future-product--insight { background: #e6e8ef; }
.fgr2-future-product--plan { background: #f1e2d5; }
.fgr2-future-product__top { align-items: center; display: flex; justify-content: space-between; }
.fgr2-future-product__status { background: rgba(255,255,255,.62); border-radius: 999px; color: var(--fgr-forest-900); font-size: .68rem; font-weight: 900; padding: 7px 11px; }
.fgr2-future-product__step { border: 1px solid rgba(22,63,53,.18); color: var(--fgr-forest-700); font-size: .68rem; font-weight: 800; padding: 5px 8px; }
.fgr2-future-product__symbol { color: var(--fgr-forest-700); font-family: Arial, sans-serif; font-size: 2.3rem; line-height: 1; margin-top: 40px; }
.fgr2-future-product h2 { color: var(--fgr-forest-900); font-family: "DM Sans", Arial, sans-serif; font-size: clamp(1.55rem,2.4vw,2rem); letter-spacing: -.035em; line-height: 1.05; margin-top: 16px; }
.fgr2-future-product h3 { color: var(--fgr-forest-900); font-size: 1.08rem; line-height: 1.6; margin-top: 10px; max-width: 18ch; }
.fgr2-future-product p { color: var(--fgr-ink-700); font-size: .86rem; line-height: 1.9; margin-top: 10px; }
.fgr2-future-product__footer { margin-top: auto; padding-top: 18px; }
.fgr2-future-product__footer span { align-items: center; color: #806a38; display: flex; font-size: .73rem; gap: 7px; }
.fgr2-future-product__footer span i { background: var(--fgr-gold-500); border-radius: 50%; display: inline-block; height: 6px; width: 6px; }
.fgr2-future-product__footer strong { color: var(--fgr-forest-900); display: block; font-size: .77rem; margin-top: 13px; }
.fgr2-future-product__visit { align-items: center; background: var(--fgr-forest-900); color: #fff !important; display: inline-flex; font-size: .76rem; font-weight: 900; gap: 8px; margin-top: 14px; padding: 9px 12px; text-decoration: none; }
.fgr2-future-product__visit:hover { background: var(--fgr-forest-700); color: #fff !important; }
.fgr2-product-hero { align-items: center; display: grid; gap: 52px; grid-template-columns: .72fr 1.28fr; }
.fgr2-dashboard-frame { margin: 0; }
.fgr2-dashboard-frame img { background: #fff; border-radius: 18px; box-shadow: var(--fgr-shadow); height: auto; max-height: 440px; object-fit: contain; object-position: center; width: 100%; }
.fgr2-steps { display: grid; gap: 18px; grid-template-columns: repeat(3,1fr); }
.fgr2-steps > div { background: var(--fgr-cream-50); border-radius: var(--fgr-radius-md); padding: 28px; }
.fgr2-steps span { color: var(--fgr-gold-500); font-size: .78rem; font-weight: 900; }
.fgr2-steps h3 { font-size: 1.17rem; margin-top: 18px; }
.fgr2-steps p { color: var(--fgr-ink-700); font-size: .9rem; margin-top: 8px; }
.fgr2-parent-grid { display: grid; gap: 20px; grid-template-columns: repeat(2,1fr); }
.fgr2-parent-grid article { border: 1px solid rgba(24,49,58,.09); border-radius: var(--fgr-radius-md); padding: 30px; }
.fgr2-parent-grid h2 { font-size: 1.28rem; margin-top: 18px; }
.fgr2-parent-grid p { color: var(--fgr-ink-700); margin-top: 9px; }

/* Reveal state driven by progressive enhancement. */
.fgr2-reveal { transition: opacity .6s ease, transform .6s ease; }
.fgr2.js .fgr2-reveal { opacity: 0; transform: translateY(16px); }
.fgr2.js .fgr2-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1080px) {
  .fgr2-cycle { grid-template-columns: repeat(3,1fr); }
  .fgr2-cycle__step { min-height: 200px; }
  .fgr2-ecosystem-grid, .fgr2-future-products { grid-template-columns: repeat(2,1fr); }
  .fgr2-problem-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 780px) {
  .fgr2 { --fgr-shell: min(100% - 32px, 1200px); }
  .fgr2-section { padding: 72px 0; }
  .fgr2-hero { min-height: auto; padding: 36px 0 52px; }
  .fgr2-hero__grid { gap: 34px; grid-template-columns: 1fr; min-height: auto; }
  .fgr2-hero h1 { font-size: clamp(2.15rem,8.6vw,2.85rem); line-height: 1.25; }
  .fgr2-hero__visual, .fgr2-hero__visual > img { min-height: 390px; }
  .fgr2-hero__visual > img { object-position: 25% center; }
  .fgr2-growth-card { bottom: 16px; max-width: 200px; padding: 14px; right: 16px; }
  [dir="rtl"] .fgr2-growth-card { left: 16px; right: auto; }
  .fgr2-audience-grid, .fgr2-product-split, .fgr2-trust-grid, .fgr2-product-hero, .fgr2-example { grid-template-columns: 1fr; }

  .fgr2-products-hero__layout { gap: 32px; grid-template-columns: 1fr; }
  .fgr2-products-hero__layout .fgr2-page-hero__inner { max-width: 650px; }
  .fgr2-family-hub-vision > img { max-height: none; }
  .fgr2-cycle { grid-template-columns: 1fr 1fr; }
  .fgr2-cycle__step { min-height: 175px; }
  .fgr2-transformation { align-items: flex-start; flex-direction: column; gap: 12px; margin-inline: auto; max-width: 260px; }
  .fgr2-transformation > div { align-items: center; flex-direction: row; gap: 12px; max-width: unset; width: 100%; }
  .fgr2-transformation strong { margin-top: 0; }
  .fgr2-transformation i { display: none; }
  .fgr2-age-tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
  .fgr2-age-tabs button { flex: 0 0 86px; }
  .fgr2-area-grid, .fgr2-resource-grid, .fgr2-steps { grid-template-columns: 1fr; }
  .fgr2-ecosystem-grid, .fgr2-future-products { grid-template-columns: 1fr; }
  .fgr2-future-products::before { display: none; }
  .fgr2-future-products__intro { text-align: start; }
  .fgr2-future-products__line { justify-content: flex-start; }
  .fgr2-future-product { min-height: 0; }
  .fgr2-parent-grid { grid-template-columns: 1fr; }
  .fgr2-page-hero { padding: 78px 0 60px; }
  .fgr2-page-hero h1 { font-size: clamp(1.9rem,7.4vw,2.5rem); line-height: 1.3; }
  .fgr2-example { padding: 28px; }
  .fgr2-final-cta { padding: 78px 0; }
}

@media (max-width: 460px) {
  .fgr2-problem-grid, .fgr2-cycle { grid-template-columns: 1fr; }
  .fgr2-actions { align-items: stretch; flex-direction: column; }
  .fgr2-actions .fgr2-button { width: 100%; }
  .fgr2-section-heading h2 { font-size: 1.8rem; line-height: 1.3; }
}

@media (prefers-reduced-motion: reduce) {
  .fgr2 *, .fgr2 *::before, .fgr2 *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .fgr2.js .fgr2-reveal { opacity: 1; transform: none; }
}
