/* Company homepage only: personal sites and consultation forms keep their theme. */
.agency-home {
    --agency-bg: #0b0b0a;
    --agency-panel: #141413;
    --agency-line: #30302d;
    --agency-text: #f5f5f2;
    --agency-muted: #b5b5ad;
    background: var(--agency-bg);
    color: var(--agency-text);
    -webkit-font-smoothing: antialiased;
}
.agency-home main { max-width: none; margin: 0; padding: 0; }
.agency-home p { word-break: keep-all; overflow-wrap: break-word; }
.agency-home header, .agency-home footer { background: var(--agency-bg); }
.agency-home header { border-bottom: 1px solid var(--agency-line); }
.agency-home footer { border-top: 1px solid var(--agency-line); }
.agency-home .logo-domain, .agency-home .nav-menu a { color: var(--agency-muted); }
.agency-home .nav-menu a:hover, .agency-home .nav-menu a.active { color: var(--agency-text); }
.agency-home .nav-menu a.nav-consult { background: var(--agency-text); color: var(--agency-bg); border-radius: 2px; }
.agency-home .nav-menu a.nav-consult:hover { background: #dadad3; }
.agency-home .nav-menu.open { background: var(--agency-panel); }
.agency-home a:focus-visible, .agency-home button:focus-visible { outline: 2px solid var(--agency-text); outline-offset: 5px; }

.agency-home .fm-section { padding: 5.5rem 1.5rem; background: var(--agency-bg); border-bottom: 1px solid #232321; }
.agency-home .fm-label, .agency-home .fm-blog-label {
    color: var(--agency-muted); font-size: .7rem; font-weight: 500;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .18em;
}
.agency-home .fm-h2 { color: var(--agency-text); font-size: clamp(1.8rem, 3.3vw, 2.8rem); line-height: 1.3; letter-spacing: -.045em; }
.agency-home .fm-sub { color: var(--agency-muted); max-width: 720px; }
.agency-home .fm-center .fm-sub { margin-left: auto; margin-right: auto; }
.agency-home .fm-hero { background: var(--agency-bg); min-height: 650px; }
.agency-home .fm-hero-overlay { background: linear-gradient(180deg, rgba(11,11,10,.75), rgba(11,11,10,.65) 45%, #0b0b0a); }
.agency-home .fm-hero h1 { font-size: clamp(2rem, 4.5vw, 3.8rem); letter-spacing: -.045em; }
.agency-home .fm-hero-label { color: #d1d1c9; font-family: ui-monospace, Consolas, monospace; font-weight: 400; }
.agency-home .fm-hero p.fm-hero-sub2 { color: #d1d1c9; }
.agency-home .fm-btn-main, .agency-home .fm-btn-ghost, .agency-home .fm-btn-cta { border-radius: 2px; }
.agency-home .fm-btn-main, .agency-home .fm-btn-cta { background: var(--agency-text); color: var(--agency-bg); }
.agency-home .fm-btn-main:hover, .agency-home .fm-btn-cta:hover { background: #dadad3; }
.agency-home .fm-safe-unit { border-radius: 2px; background: rgba(11,11,10,.8); border-color: #4b4b45; }
.agency-home .fm-safe-list .hl { color: #ff5c5c; }

.agency-home .fm-blog { padding-top: 3rem; padding-bottom: 3rem; }
.agency-home .fm-blog-card { background: var(--agency-panel); border-color: var(--agency-line); border-radius: 2px; }
.agency-home .fm-blog-card:hover, .agency-home .fm-blog-card:focus-within { border-color: #68685e; box-shadow: none; }
.agency-home .fm-blog h2 a, .agency-home .fm-blog .fm-blog-question { color: var(--agency-text); }
.agency-home .fm-blog p { color: var(--agency-muted); }
.agency-home .fm-blog-read, .agency-home .fm-case-link { color: #e2dfd2; }
.agency-home .fm-card { background: var(--agency-panel); border-color: var(--agency-line); border-radius: 2px; }
.agency-home .fm-card:hover { border-color: #68685e; box-shadow: none; transform: none; }
.agency-home .fm-card h3 { color: var(--agency-text); }
.agency-home .fm-card p { color: var(--agency-muted); }
.agency-home .fm-why .fm-sub { margin-bottom: 2.2rem; }
.agency-home .fm-why .fm-card { background: transparent; border: 0; border-top: 1px solid var(--agency-line); padding-left: 0; padding-right: 1.2rem; }

.agency-home .fm-service-diagnosis { background: var(--agency-panel); border: 1px solid var(--agency-line); border-radius: 2px; }
.agency-home .fm-service-diagnosis strong, .agency-home .fm-service-card h3 { color: var(--agency-text); }
.agency-home .fm-service-diagnosis p, .agency-home .fm-service-desc { color: var(--agency-muted); }
.agency-home .fm-service-desc { min-height: 3.6em; }
.agency-home .fm-service-card, .agency-home .fm-service-marketing { background: var(--agency-panel); border: 1px solid var(--agency-line); border-radius: 2px; }
.agency-home .fm-service-price { border-color: var(--agency-line); }
.agency-home .fm-price-num { color: var(--agency-text); }
.agency-home .fm-price-num span, .agency-home .fm-service-price p, .agency-home .fm-service-note { color: var(--agency-muted); }
.agency-home .fm-list li { color: #d1d1ca; border-color: #292927; }
.agency-home .fm-list li::before { color: #c2bda9; }
.agency-home .fm-service-flow { border-color: var(--agency-line); border-radius: 2px; color: var(--agency-text); }
.agency-home .fm-service-flow span { color: var(--agency-muted); font-family: ui-monospace, Consolas, monospace; }
.agency-home .fm-cta-note { color: var(--agency-muted); }
.agency-home .fm-case-kind { color: #c2bda9; }
.agency-home .fm-case-logo { border-radius: 2px; background: #f5f5f2; border-color: transparent; }
.agency-home .fm-faq .fm-card h3 { color: var(--agency-text); }
.agency-home .fm-faq .fm-card { background: transparent; }
.agency-home .fm-cta { padding-top: 5rem; padding-bottom: 5rem; }

/* Real GA4 results stay readable on the dark theme; screenshots keep their light background. */
.agency-home .fm-results-project { background: var(--agency-panel); border-color: var(--agency-line); border-radius: 2px; }
.agency-home .fm-results-project-kind { color: #c2bda9; }
.agency-home .fm-results-project-name, .agency-home .fm-results-trust-text, .agency-home .fm-results-cta-title,
.agency-home .fm-results-countries-title { color: var(--agency-text); }
.agency-home .fm-results-project-desc, .agency-home .fm-results-countries-note, .agency-home .fm-results-unit,
.agency-home .fm-results-project-note { color: var(--agency-muted); }
.agency-home .fm-results-stat { background: var(--agency-panel); border-color: var(--agency-line); }
.agency-home .fm-results-num { color: var(--agency-text); letter-spacing: -.03em; }
.agency-home .fm-results-delta { color: #9ec9a6; }
.agency-home .fm-results-note, .agency-home .fm-results-caveat { color: #8a8a82; }
.agency-home .fm-results-shot { background: #f5f5f2; border-color: var(--agency-line); border-radius: 2px; }
.agency-home .fm-results-shot img { background: #f5f5f2; }
.agency-home .fm-results-shot figcaption { color: #475569; border-top-color: #d8d8d0; }
.agency-home .fm-results-countries { background: var(--agency-panel); border: 1px solid var(--agency-line); border-radius: 2px; }
.agency-home .fm-results-country-list li { background: transparent; border-color: #4b4b45; color: #d1d1ca; }
.agency-home .fm-results-country-list li strong { color: var(--agency-text); }
.agency-home .fm-results-flow li { background: transparent; border-color: var(--agency-line); color: var(--agency-text); }
.agency-home .fm-results-flow li + li::before { color: #7a7a72; }

/* Leader followed by three specialists; original sketches are never stretched. */
.agency-home .fm-team .fm-sub { margin-bottom: 2rem; }
.fm-team-card { min-width: 0; padding: 1.5rem; background: var(--agency-panel); border: 1px solid var(--agency-line); }
.fm-team-leader { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 2rem; align-items: center; margin-bottom: 1.2rem; }
.fm-team-portrait { width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: #fff; }
.fm-team-portrait img { display: block; width: 100%; height: 100%; object-fit: contain; }
.fm-team-leader .fm-team-portrait { aspect-ratio: 3 / 4; }
.fm-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.fm-team-grid .fm-team-portrait { margin-bottom: 1.4rem; }
.fm-team-info { position: relative; padding-right: 1.4rem; }
.fm-team-info h3 { color: var(--agency-text); font-size: 1.3rem; margin-bottom: .35rem; }
.fm-team-index { position: absolute; top: .25rem; right: 0; color: #9a9a91; font-size: .65rem; font-family: ui-monospace, Consolas, monospace; }
.fm-team-info .fm-team-role { color: #c2bda9; font: .65rem/1.8 ui-monospace, Consolas, monospace; letter-spacing: .08em; margin-bottom: 1rem; }
.fm-team-info p { color: var(--agency-muted); font-size: .9rem; line-height: 1.95; overflow-wrap: anywhere; }

@media (max-width: 1280px) {
    .agency-home .fm-hero { padding-top: 14rem; }
}
@media (max-width: 768px) {
    .agency-home header { padding: 0 .5rem; }
    .agency-home .fm-section { padding: 3.5rem 1.25rem; }
    .agency-home .fm-hero { min-height: 560px; padding-top: 13rem; }
    .agency-home .fm-h2 { font-size: 1.8rem; }
    .fm-team-card { padding: 1.2rem; }
    .fm-team-leader { grid-template-columns: 130px minmax(0, 1fr); gap: 1.3rem; }
    .fm-team-grid { grid-template-columns: minmax(0, 1fr); }
    .fm-team-grid .fm-team-card { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 1.3rem; align-items: center; }
    .fm-team-grid .fm-team-portrait { margin-bottom: 0; }
}
@media (max-width: 480px) {
    .fm-team-leader, .fm-team-grid .fm-team-card { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
    .fm-team-portrait, .fm-team-leader .fm-team-portrait { max-width: 220px; margin: 0 auto; aspect-ratio: 1 / 1; }
    .fm-team-info { padding-right: 1.4rem; }
}