/* GRO Growth Partners: strong type, real work and a visible division of value. */
.fp { --fp-border: #62626C; --fp-paper: #F3F3EC; --fp-ink: #17171A; }
.fp-header__in { min-height: 88px; display:flex; align-items:center; gap:32px; }
.fp-header .btn { margin-left:auto; gap:12px; }
.fp-header .btn svg { width:20px; height:20px; }
.fp-nav { display:flex; align-items:center; gap:28px; margin-left:auto; }
.fp-nav a { color:inherit; text-decoration:none; font-size:14px; min-height:44px; display:flex; align-items:center; text-underline-offset:6px; }
.fp-nav a:hover { color:var(--yellow); }
.fp h1 { font-size:clamp(2.7rem,4.75vw,4.5rem); line-height:1.07; letter-spacing:-.035em; font-weight:600; max-width:12ch; }
.fp h1 span { color:var(--yellow); }
.fp h2 { font-weight:600; }
.fp h3 { font-weight:600; letter-spacing:-.025em; line-height:1.25; }
.fp-intro { font-size:clamp(1rem,1.4vw,1.125rem); line-height:1.75; color:var(--gray-300); max-width:49ch; margin-top:24px; }
.fp-intro strong { color:var(--cream); font-weight:600; }
.fp-small { font-size:14px; line-height:1.75; color:var(--gray-400); max-width:65ch; margin-top:24px; }
.fp-hero { padding-block:64px; }
.fp-hero__grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:64px; align-items:center; }
.fp-hero__copy .btn-row { margin-top:30px; gap:18px; }
.fp-hero__copy .hero__text-link { font-size:14px; }
.fp-hero__note { font-size:13px; line-height:1.7; margin-top:24px; color:var(--gray-400); max-width:40ch; }
.fp-story { border:1px solid var(--fp-border); border-radius:20px; background:var(--surface-deep); overflow:hidden; min-width:0; }
.fp-story__top { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:18px 28px; border-bottom:1px solid var(--fp-border); }
.fp-story__top span:first-child { font-weight:600; color:var(--yellow); font-size:18px; }
.fp-story__top span:last-child { color:var(--gray-400); font-size:12px; text-align:right; max-width:18ch; }
.fp-story__scenes { padding:28px; display:grid; }
.fp-scene { grid-area:1 / 1; min-height:355px; display:flex; flex-direction:column; animation:fp-scene-in 350ms var(--ease) both; }
.fp-scene__title { font-size:clamp(22px,2.2vw,30px); line-height:1.3; letter-spacing:-.03em; font-weight:500; margin-bottom:24px; min-height:2.6em; max-width:23ch; }
.fp-scene__caption { font-size:14px; line-height:1.65; color:var(--gray-300); margin-top:auto; padding-top:22px; }
.fp-conversation { display:flex; flex-direction:column; align-items:flex-start; padding-bottom:24px; }
.fp-conversation__who { font-size:11px; color:var(--gray-400); margin:0 0 7px 12px; }
.fp-conversation p { font-size:17px; line-height:1.5; background:var(--surface-card); padding:15px 18px; border-radius:16px 16px 16px 2px; max-width:92%; }
.fp-conversation__who:nth-of-type(2) { margin:20px 12px 7px 0; align-self:flex-end; }
.fp-conversation p:last-child { align-self:flex-end; color:var(--fp-ink); background:var(--yellow); border-radius:16px 16px 2px 16px; }
.fp-preview { background:var(--surface-base); border:1px solid var(--fp-border); border-radius:8px; overflow:hidden; }
.fp-preview img { width:100%; height:auto; aspect-ratio:1512 / 850; object-fit:cover; }
.fp-preview figcaption { font-size:11px; line-height:1.6; padding:10px 12px; color:var(--gray-300); }
.fp-proposal { padding-bottom:16px; }
.fp-proposal > span { font-size:14px; color:var(--gray-300); }
.fp-proposal > strong { display:flex; align-items:baseline; gap:12px; font-size:clamp(44px,4.5vw,64px); letter-spacing:-.045em; font-weight:500; color:var(--yellow); line-height:1.3; }
.fp-proposal > strong span { order:-1; font-size:16px; letter-spacing:0; }
.fp-proposal ul { font-size:14px; display:grid; gap:8px; margin-top:16px; }
.fp-proposal li::before { content:'✓'; color:var(--yellow); margin-right:12px; }
.fp-share { display:grid; grid-template-columns:1fr 1fr; border-block:1px solid var(--fp-border); padding-block:22px; margin-bottom:24px; }
.fp-share > div { display:flex; flex-direction:column; gap:6px; padding-inline:12px; }
.fp-share > div:first-child { color:var(--yellow); border-right:1px solid var(--fp-border); }
.fp-share span { font-size:12px; min-height:3em; color:var(--gray-300); }
.fp-share strong { font-size:clamp(40px,4.5vw,64px); line-height:1.2; font-weight:500; letter-spacing:-.045em; }
.fp-share b { font-size:20px; font-weight:500; }
.fp-story__controls { border-top:1px solid var(--fp-border); padding:14px 20px 6px; }
.fp-story__steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.fp-story__steps button { min-height:44px; font-size:13px; background:transparent; border:1px solid var(--fp-border); border-radius:6px; cursor:pointer; padding:7px 4px; }
.fp-story__steps button[aria-pressed="true"] { background:var(--yellow); border-color:var(--yellow); color:var(--fp-ink); font-weight:600; }
.fp-story__steps button:hover { border-color:var(--yellow); }
.fp-story__play { min-height:44px; display:block; margin-left:auto; font-size:12px; padding:8px 0 4px 16px; color:var(--gray-300); background:transparent; border:0; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.fp-model { background:var(--fp-paper); color:var(--fp-ink); }
.fp-model .section-intro > p { color:var(--light-text-2); }
.fp-responsibilities { display:grid; grid-template-columns:1fr 64px 1fr; align-items:stretch; }
.fp-responsibility { padding:32px 36px; border:1px solid #AAAAB0; border-radius:16px; }
.fp-responsibility--gro { background:var(--surface-base); color:var(--cream); border-color:var(--surface-base); }
.fp-responsibility h3 { font-size:26px; margin-bottom:26px; }
.fp-responsibility ol { counter-reset:partner; }
.fp-responsibility li { counter-increment:partner; padding:20px 0 20px 36px; border-top:1px solid #BDBDC0; position:relative; }
.fp-responsibility li::before { content:counter(partner); position:absolute; left:0; top:20px; font-size:15px; font-weight:600; }
.fp-responsibility strong { display:block; font-size:17px; font-weight:600; }
.fp-responsibility li span { display:block; margin-top:8px; font-size:15px; line-height:1.65; color:var(--light-text-2); }
.fp-responsibility--gro li { border-color:var(--fp-border); }
.fp-responsibility--gro li::before { color:var(--yellow); }
.fp-responsibility--gro li span { color:var(--gray-300); }
.fp-handover { display:flex; align-items:center; justify-content:center; }
.fp-handover svg { width:28px; height:28px; }
.fp-closer { font-size:18px; text-align:center; margin-top:36px; font-weight:500; letter-spacing:-.02em; }
.fp-demonstrate__grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:72px; align-items:center; }
.fp-artwork { min-width:0; }
.fp-artwork img { border-radius:12px; width:100%; border:1px solid var(--fp-border); }
.fp-artwork figcaption { font-size:12px; color:var(--gray-400); margin-top:16px; line-height:1.7; }
.fp-benefits { margin-block:28px 22px; display:grid; gap:20px; }
.fp-benefits li { font-size:16px; color:var(--gray-300); line-height:1.65; }
.fp-benefits b { display:block; color:var(--cream); font-weight:600; }
.fp-commission { background:var(--yellow); color:var(--fp-ink); }
.fp-commission__grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.fp-commission .fp-intro, .fp-commission .fp-small { color:var(--fp-ink); }
.fp-dark-link { color:inherit; display:inline-flex; align-items:center; min-height:48px; gap:16px; font-size:16px; margin-top:20px; text-decoration:underline; text-underline-offset:6px; font-weight:500; }
.fp-dark-link svg { width:20px; height:20px; }
.fp-commission :focus-visible, .fp-model :focus-visible { outline-color:var(--fp-ink); }
.fp-calculator { padding:32px; border-radius:18px; background:var(--fp-paper); box-shadow:0 20px 36px #35230012; min-width:0; color-scheme:light; }
.fp-calculator__controls > label { font-size:14px; display:block; margin-bottom:8px; font-weight:500; }
.fp-calculator select { width:100%; font-size:22px; font-weight:600; min-height:56px; border:1px solid #6C6C76; padding:10px 16px; border-radius:6px; background:var(--cream); color:var(--fp-ink); }
.fp-calculator fieldset { border:0; padding:0; margin-top:22px; }
.fp-calculator legend { font-size:13px; line-height:1.6; margin-bottom:10px; }
.fp-payment { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.fp-payment label { display:flex; gap:8px; align-items:center; font-size:13px; padding:12px 10px; min-height:48px; border:1px solid #6C6C76; border-radius:6px; cursor:pointer; }
.fp-payment label:has(input:checked) { background:var(--fp-ink); color:var(--cream); }
.fp-payment label:has(input:focus-visible) { outline:2px solid var(--fp-ink); outline-offset:3px; }
.fp-payment input { width:17px; height:17px; flex-shrink:0; accent-color:var(--yellow); }
.fp-calculator__result { border-top:1px solid #BDBDC0; padding-top:26px; margin-top:26px; }
.fp-calculator__result > span { font-size:15px; }
.fp-calculator output { display:block; font-size:clamp(3.2rem,5vw,4.75rem); letter-spacing:-.045em; line-height:1.25; font-weight:600; }
.fp-calculator__result > p { font-size:14px; line-height:1.7; }
.fp-money-bar { display:grid; grid-template-columns:1fr 1fr; gap:4px; height:12px; margin:24px 0 16px; }
.fp-money-bar span:first-child { background:var(--fp-ink); border-radius:3px 0 0 3px; }
.fp-money-bar span:last-child { background:var(--yellow); border:1px solid #8B6600; border-radius:0 3px 3px 0; }
.fp-calculator__split { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.fp-calculator dt { font-size:12px; line-height:1.6; }
.fp-calculator dd { font-size:19px; font-weight:600; margin-top:6px; }
.fp-calculator .fp-calculator__timing { margin-top:20px; font-size:13px; }
.fp-calculator > .fp-small { font-size:12px; line-height:1.7; color:var(--light-text-2); border-top:1px solid #BDBDC0; padding-top:18px; margin-top:20px; }
.fp-work .lp-case-link { color:inherit; font-size:14px; margin-top:12px; min-height:44px; display:inline-flex; align-items:center; gap:12px; text-decoration:underline; text-underline-offset:6px; }
.fp-work .lp-case-link svg { width:18px; height:18px; }
.fp-fit__grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.fp-fit .hero__text-link { margin-top:22px; }
.fp-fit__list li { border-bottom:1px solid var(--fp-border); padding-block:26px; display:grid; grid-template-columns:150px 1fr; gap:20px; }
.fp-fit__list li:first-child { border-top:1px solid var(--fp-border); }
.fp-fit__list span { color:var(--yellow); font-size:17px; font-weight:500; }
.fp-fit__list p { font-size:15px; color:var(--gray-300); line-height:1.75; }
.fp-beyond { background:var(--surface-deep); }
.fp-pillars { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-block:1px solid var(--fp-border); }
.fp-pillar { color:var(--cream); padding:24px 20px; min-width:0; border-right:1px solid var(--fp-border); display:flex; flex-direction:column; text-decoration:none; }
.fp-pillar:first-child { border-left:1px solid var(--fp-border); }
.fp-pillar > span { font-size:20px; font-weight:600; }
.fp-pillar > p { font-size:14px; line-height:1.7; margin-block:12px 20px; color:var(--gray-300); }
.fp-pillar svg { width:20px; height:20px; margin-top:auto; }
.fp-pillar--active { background:var(--yellow); color:var(--fp-ink); }
.fp-pillar--active > p { color:var(--fp-ink); }
.fp-pillar:hover > span { text-decoration:underline; text-underline-offset:6px; }
.fp-pillar--active:focus-visible { outline-color:var(--cream); outline-offset:4px; }
.fp-booking__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:72px; align-items:start; }
.fp-booking__topics { display:grid; gap:22px; margin-top:32px; max-width:43ch; }
.fp-booking__topics li { font-size:16px; color:var(--gray-300); }
.fp-booking__topics b { display:block; color:var(--cream); font-weight:600; }
.fp .meeting-book__help a { text-decoration:underline; text-underline-offset:4px; }
@keyframes fp-scene-in { from { opacity:.5; translate:0 6px; } to { opacity:1; translate:0 0; } }
@media (max-width:1100px) {
 .fp-hero__grid { gap:32px; }
 .fp-hero__copy .btn-row { flex-direction:column; align-items:flex-start; gap:10px; }
 .fp-demonstrate__grid, .fp-commission__grid, .fp-fit__grid, .fp-booking__grid { gap:40px; }
 .fp-fit__list li { grid-template-columns:1fr; gap:8px; }
 .fp-scene { min-height:380px; }
}
@media (max-width:800px) {
 .fp-header__in { min-height:76px; gap:16px; }
 .fp-nav { display:none; }
 .fp-header .btn { min-height:44px; padding:10px 18px; font-size:14px; }
 .fp-hero { padding-block:40px 48px; }
 .fp-hero__grid, .fp-demonstrate__grid, .fp-commission__grid, .fp-fit__grid, .fp-booking__grid { grid-template-columns:1fr; gap:40px; }
 .fp h1 { font-size:clamp(2.5rem,7vw,4rem); max-width:15ch; }
 .fp-hero__copy .btn-row { flex-direction:row; align-items:center; gap:16px; }
 .fp-intro { max-width:58ch; }
 .fp-story { max-width:580px; width:100%; }
 .fp-scene { min-height:360px; }
 .fp-responsibilities { grid-template-columns:1fr; }
 .fp-handover { height:60px; }
 .fp-handover svg { transform:rotate(90deg); }
 .fp-responsibility { padding:28px; }
 .fp-demonstrate__grid > figure { order:2; }
 .fp-demonstrate__grid > div { order:1; }
 .fp-pillars { grid-template-columns:1fr; border-bottom:0; }
 .fp-pillar { border-left:1px solid var(--fp-border); border-bottom:1px solid var(--fp-border); display:grid; grid-template-columns:100px 1fr 24px; align-items:center; gap:16px; padding:20px; }
 .fp-pillar > p { margin:0; }
 .fp-pillar svg { margin:0; }
 .fp-booking .meeting-book { max-width:100%; }
}
@media (max-width:420px) {
 .fp-story__top { padding-inline:20px; }
 .fp-story__scenes { padding:22px 20px; }
 .fp-scene { min-height:360px; }
 .fp-scene__title { font-size:23px; }
 .fp-conversation p { font-size:16px; padding:12px 14px; }
 .fp-story__controls { padding-inline:12px; }
 .fp-story__steps button { font-size:12px; }
 .fp-responsibility { padding:24px 20px; }
 .fp-responsibility h3 { font-size:24px; }
 .fp-calculator { padding:24px 20px; }
 .fp-payment { grid-template-columns:1fr; }
 .fp-calculator__split { gap:12px; }
 .fp-calculator dd { font-size:17px; }
 .fp-pillar { grid-template-columns:84px 1fr 20px; gap:12px; padding:18px 14px; }
 .fp-pillar > span { font-size:17px; }
 .fp-pillar > p { font-size:13px; }
 .fp-hero__copy .btn-row { flex-direction:column; align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce) { .fp-scene { animation:none; } }

/* Stack all scenes in the same layout cell, so playback never shifts the page. */
.fp-scene[data-inactive] { visibility:hidden; pointer-events:none; animation:none; }
