/*
Theme Name: NORTHFIELD Portfolio Sample
Description: 架空のコンサルティング会社 NORTHFIELD CONSULTING の自主制作テーマ。
Version: 2.1.0
Author: Portfolio Sample
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: northfield
Requires PHP: 8.3
*/
@font-face{font-family:PortfolioStatic;src:url('portfolio-jp.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face {
    font-family: PortfolioJP;
    src: url('noto-sans-jp.woff2') format('woff2');
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}
:root {
    --ink: #101d36;
    --blue: #2554ed;
    --paper: #f5f5ef;
    --white: #fff;
    --muted: #526079;
    --line: #d8dce3;
    --space-1: 8px;
    --space-2: 16px;
    --space-3: 24px;
    --space-4: 32px;
    --space-5: 40px;
    --space-6: 48px;
    --space-7: 56px;
    --space-8: 64px;
    --space-10: 80px;
    --space-12: 96px;
    --pad: var(--space-8);
    --text: 1.125rem;
    --note: .875rem;
    --menu-label: .75rem;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--space-4); }
body, .editor-styles-wrapper {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: PortfolioStatic, PortfolioJP, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: var(--text);
    line-height: 1.85;
    letter-spacing: 0;
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
a, button { touch-action: manipulation; }
button, input, textarea, select { font: inherit; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.5; letter-spacing: .01em; line-break: strict; overflow-wrap: break-word; }
p { margin-bottom: var(--space-3); }
h2 { font-size: clamp(2rem, 3.4vw, 2.75rem); }
h3 { font-size: 1.5rem; }
main, article, section, .hero-copy, .approach-text, .content-body, .company-panel > div { min-width: 0; }
.headline-line { display: block; }
[hidden] { display: none !important; }
.skip-link { position: fixed; z-index: 1000; top: var(--space-1); left: var(--space-1); background: var(--white); color: var(--ink); padding: var(--space-2) var(--space-3); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.demo-strip { display: flex; gap: var(--space-2); background: var(--ink); color: var(--white); padding: var(--space-1) var(--pad); font-size: var(--note); line-height: 1.7; }
.site-header { display: flex; align-items: center; justify-content: space-between; min-height: 104px; padding: var(--space-3) var(--pad); gap: var(--space-4); position: relative; z-index: 50; background: var(--paper); }
.brand { display: flex; gap: var(--space-2); align-items: center; min-width: 0; min-height: 44px; font-family: PortfolioStatic, PortfolioJP, sans-serif; font-size: 1.5rem; font-weight: 800; letter-spacing: 0; line-height: 1.2; }
.brand > span:last-child { min-width: 0; overflow-wrap: anywhere; }
.brand small { display: block; font-size: var(--note); font-weight: 500; letter-spacing: .01em; margin-top: var(--space-1); }
.brand-icon { display: grid; place-items: center; width: 40px; height: 48px; flex-shrink: 0; background: var(--blue); color: var(--white); font-size: 1.75rem; clip-path: polygon(0 0,100% 0,100% 80%,80% 100%,0 100%); }
.nav-list { display: flex; gap: var(--space-3); align-items: center; margin: 0; padding: 0; list-style: none; font-size: var(--text); font-weight: 700; }
.nav-list li { min-width: 0; }
.nav-list a { display: flex; align-items: center; justify-content: center; min-height: 44px; gap: var(--space-2); }
.nav-list a:hover, .text-link:hover { color: var(--blue); }
.nav-contact a, .nav-list li:last-child a { background: var(--ink); color: var(--white); min-height: 48px; padding: var(--space-1) var(--space-2); }
.nav-list li:last-child a:hover { background: var(--blue); color: var(--white); }
.menu-toggle, .nav-overlay { display: none; }
.eyebrow { font-size: var(--note); font-weight: 700; letter-spacing: .02em; line-height: 1.6; margin-bottom: var(--space-3); }
.hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: var(--space-6); padding: var(--space-6) var(--pad) var(--space-4); max-width: 1600px; margin: 0 auto; }
.hero-copy h1 { font-size: clamp(2.5rem, 4.6vw, 4.5rem); font-weight: 800; line-height: 1.4; margin-bottom: var(--space-3); }
.hero-copy .headline-accent { color: var(--blue); }
.hero-description { font-size: var(--text); line-height: 1.9; max-width: 30em; color: var(--muted); margin-bottom: var(--space-3); }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-height: 44px; border-bottom: 1px solid var(--ink); font-size: var(--text); font-weight: 700; padding: var(--space-1) 0; }
.text-link span { font-size: 1.5rem; font-weight: 400; }
.hero-art { position: relative; display: flex; flex-direction: column; justify-content: space-between; background: var(--blue); color: var(--white); min-height: 544px; overflow: hidden; padding: var(--space-4); }
.art-label { position: relative; z-index: 1; display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-2); font-size: var(--note); line-height: 1.6; letter-spacing: .01em; }
.art-grid { position: absolute; display: grid; grid-template-columns: repeat(3,1fr); width: 64%; aspect-ratio: 1; top: var(--space-12); left: 21%; transform: rotate(-13deg); gap: var(--space-1); }
.art-grid span { background: #dce4ff; }
.art-grid span:nth-child(1) { opacity: .18; }
.art-grid span:nth-child(2) { opacity: .35; }
.art-grid span:nth-child(3) { opacity: .55; }
.art-grid span:nth-child(4) { opacity: .38; }
.art-grid span:nth-child(5) { opacity: .65; }
.art-grid span:nth-child(6) { opacity: .82; }
.art-grid span:nth-child(7) { opacity: .6; }
.art-grid span:nth-child(8) { opacity: .82; }
.art-grid span:nth-child(9) { background: var(--white); }
.art-caption { position: relative; display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); font-size: var(--text); font-weight: 700; line-height: 1.7; }
.art-arrow { font-family: Arial,sans-serif; font-size: 3rem; font-weight: 400; }
.hero-foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-2); margin: 0 var(--pad); padding: var(--space-2) 0 var(--space-3); border-bottom: 1px solid var(--line); font-size: var(--note); color: var(--muted); }
.hero-foot a { display: flex; align-items: center; gap: var(--space-2); min-height: 44px; }
.section { padding: var(--space-10) var(--pad); max-width: 1600px; margin: 0 auto; }
.section-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: var(--space-4); gap: var(--space-3); }
.section-heading .eyebrow { margin-bottom: var(--space-2); }
.section-heading h2 { margin: 0; }
.section-number { font-size: var(--note); color: var(--muted); }
.approach-content { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: var(--space-6); }
.approach-content h2 { margin: 0; }
.approach-text { max-width: 32em; font-size: var(--text); line-height: 1.9; }
.approach-text p:last-child { margin-bottom: 0; }
.services { background: var(--white); max-width: none; }
.service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--line); }
.service-card { position: relative; min-width: 0; padding: var(--space-4) var(--space-3) var(--space-8); transition: background .2s; }
.service-card:not(:last-child) { border-right: 1px solid var(--line); }
.service-card:hover { background: #edf1ff; }
.service-number { font-size: var(--note); letter-spacing: .01em; }
.service-card h3 { font-size: 1.375rem; margin-bottom: var(--space-2); }
.service-card p { font-size: var(--text); line-height: 1.85; color: var(--muted); max-width: 26em; margin: 0; }
.service-symbol { display: flex; align-items: center; gap: var(--space-1); height: 80px; margin: var(--space-3) 0 var(--space-2); overflow: hidden; }
.service-symbol i { display: block; background: var(--blue); width: 32px; height: 32px; }
.symbol-strategy i:nth-child(1) { opacity: .25; transform: translateY(16px); }
.symbol-strategy i:nth-child(2) { opacity: .55; }
.symbol-strategy i:nth-child(3) { transform: translateY(-16px); }
.symbol-operations i { border-radius: 50%; width: 40px; height: 40px; }
.symbol-operations i:nth-child(2) { margin-left: -16px; opacity: .45; }
.symbol-operations i:nth-child(3) { margin-left: -16px; opacity: .2; }
.symbol-implementation i { width: 24px; height: 32px; }
.symbol-implementation i:nth-child(2) { height: 48px; opacity: .65; }
.symbol-implementation i:nth-child(3) { height: 64px; opacity: .4; }
.card-arrow { position: absolute; right: var(--space-3); bottom: var(--space-2); font-size: 1.75rem; }
.company-panel { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--space-8); padding: var(--space-10) var(--pad); background: var(--ink); color: var(--white); }
.company-panel h2 { margin-bottom: var(--space-3); }
.company-panel p:not(.eyebrow) { font-size: var(--text); color: #c7d0e1; max-width: 32em; }
.company-panel .text-link { border-color: #8391ab; }
.company-panel .text-link:hover { color: #b9caff; }
.company-art { overflow: hidden; position: relative; display: flex; align-items: center; justify-content: center; border: 1px solid #4d5a73; min-height: 352px; background: repeating-linear-gradient(0deg,transparent 0,transparent 55px,#344057 56px),repeating-linear-gradient(90deg,transparent 0,transparent 55px,#344057 56px); }
.company-art > span { font: 800 16rem/.9 Arial,sans-serif; color: #7e9dff; }
.company-art small { position: absolute; left: var(--space-3); bottom: var(--space-3); font-size: var(--note); line-height: 1.7; letter-spacing: .01em; }
.news-list { border-top: 1px solid var(--ink); }
.news-row { display: grid; grid-template-columns: 112px 104px minmax(0,1fr); align-items: center; gap: var(--space-3); padding: var(--space-3) 0; border-bottom: 1px solid var(--line); }
.news-row time { font-size: var(--note); color: var(--muted); }
.news-tag { font-size: var(--note); border: 1px solid var(--line); text-align: center; padding: var(--space-1); }
.news-row h3 { font-size: var(--text); font-weight: 600; letter-spacing: 0; margin: 0; }
.news-row h3 a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: 44px; }
.news-row h3 a:hover { color: var(--blue); }
.news-row h3 span { font-size: 1.5rem; flex-shrink: 0; }
.contact-band { display: flex; align-items: center; justify-content: space-between; padding: var(--space-8) var(--pad); gap: var(--space-6); background: var(--blue); color: var(--white); }
.contact-band > div { min-width: 0; }
.contact-band h2 { margin-bottom: var(--space-2); }
.contact-band p:not(.eyebrow) { font-size: var(--text); margin: 0; max-width: 32em; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-4); background: var(--ink); color: var(--white); min-height: 64px; min-width: 0; padding: var(--space-2) var(--space-3); font-size: var(--text); font-weight: 700; }
.button span { font-size: 1.5rem; font-weight: 400; flex-shrink: 0; }
.button:hover { background: #1e345c; }
.button-white { background: var(--white); color: var(--ink); }
.button-white:hover { background: #e8edff; }
.site-footer { padding: var(--space-6) var(--pad) var(--space-3); background: var(--paper); }
.footer-top { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-4); align-items: center; margin-bottom: var(--space-4); }
.footer-top p { font-size: var(--text); margin: 0; }
.footer-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3); border-top: 1px solid var(--line); padding-top: var(--space-3); font-size: var(--note); color: var(--muted); }
.footer-bottom p { margin: 0; max-width: 48em; }
.footer-bottom a { min-height: 44px; display: flex; align-items: center; }
.copyright { font-size: var(--note); color: var(--muted); margin: var(--space-2) 0 0; }
.page-header { background: var(--ink); color: var(--white); padding: var(--space-8) var(--pad) var(--space-6); }
.page-header .eyebrow { color: #b8caff; margin-bottom: var(--space-2); }
.page-header h1 { font-size: clamp(2rem, 4.5vw, 4rem); max-width: 18em; margin-bottom: var(--space-4); line-height: 1.5; }
.breadcrumb, .breadcrumb-current { font-size: var(--note); color: #c2ccde; }
.breadcrumb { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.page-content { max-width: 1104px; padding: var(--space-8) var(--pad) var(--space-10); margin: 0 auto; }
.page-content.news-list { max-width: none; border-top: none; }
.content-body { font-size: var(--text); line-height: 1.9; }
.content-body :where(p,li,td,th), .editor-styles-wrapper :where(p,li,td,th) { font-size: inherit; letter-spacing: 0; line-break: strict; overflow-wrap: break-word; }
.content-body h2, .editor-styles-wrapper h2 { font-size: 1.875rem; line-height: 1.6; padding-top: var(--space-2); margin-top: var(--space-5); margin-bottom: var(--space-3); }
.content-body h2:first-child { margin-top: 0; }
.content-body h3, .editor-styles-wrapper h3 { font-size: 1.375rem; margin-top: var(--space-4); margin-bottom: var(--space-2); }
.content-body a { color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
.content-body .wp-block-button__link { color: var(--white); text-decoration: none; background: var(--blue); border-radius: 0; min-height: 52px; padding: var(--space-2) var(--space-3); font: inherit; }
.content-body ul, .content-body ol { padding-left: var(--space-4); }
.content-body li { margin-bottom: var(--space-2); }
.content-body .wp-block-table { margin-inline: 0; max-width: 100%; }
.content-body .wp-block-table table { border-collapse: collapse; width: 100%; font-size: var(--text); table-layout: fixed; }
.content-body .wp-block-table td, .content-body .wp-block-table th { border: 1px solid var(--line); padding: var(--space-2); vertical-align: top; }
.content-body .wp-block-table td:first-child { width: 25%; font-weight: 700; }
.content-body blockquote { margin: var(--space-4) 0; padding: var(--space-3); border-left: 4px solid var(--blue); background: #e9eefe; }
.content-body blockquote p:last-child { margin-bottom: 0; }
.content-body .wp-block-separator { border: 0; border-top: 1px solid var(--line); margin: var(--space-5) 0; }
.article-header time { font-size: var(--note); display: block; margin-bottom: var(--space-2); color: #c2ccde; }
.article-header h1 { font-size: clamp(1.875rem, 3.6vw, 3rem); }
.article-image { width: 100%; margin-bottom: var(--space-4); }
.article-back { border-top: 1px solid var(--line); margin-top: var(--space-6); padding-top: var(--space-3); }
.article-back a { text-decoration: none; color: var(--ink); }
.pagination { margin-top: var(--space-4); }
.nav-links { display: flex; gap: var(--space-1); flex-wrap: wrap; }
.page-numbers { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: var(--space-1) var(--space-2); background: var(--white); border: 1px solid var(--line); font-size: var(--text); }
.page-numbers.current { background: var(--ink); color: var(--white); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
@media (min-width:1600px) {
    .services, .company-panel, .contact-band, .site-header, .site-footer, .demo-strip, .page-header { padding-inline: max(var(--pad),calc((100vw - 1472px)/2)); }
}
@media (max-width:1100px) {
    :root { --pad: var(--space-4); }
    .hero, .approach-content { gap: var(--space-4); }
    .hero-art { min-height: 512px; padding: var(--space-3); }
    .company-panel { gap: var(--space-4); }
}
@media (max-width:900px) {
    .site-header { position: sticky; top: 0; padding-block: var(--space-2); gap: 12px; min-height: 88px; }
    .has-navigation-js .menu-toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; width: max(64px,4rem); height: max(52px,3.25rem); flex-shrink: 0; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); color: var(--ink); gap: 12px; padding: 0; cursor: pointer; }
    .menu-label { font-size: var(--menu-label); line-height: 1; font-weight: 500; letter-spacing: 0; transform: translateY(-3px); order: -1; }
    .menu-lines { position: relative; width: 24px; height: 2px; background: currentColor; transform: translateY(-3px); }
    .menu-lines::before, .menu-lines::after { content: ""; position: absolute; left: 0; width: 24px; height: 2px; background: currentColor; transition: transform .18s; transform: translateY(-6px); }
    .menu-lines::after { transform: translateY(6px); }
    .menu-open .menu-lines { background: transparent; }
    .menu-open .menu-lines::before { transform: rotate(45deg); }
    .menu-open .menu-lines::after { transform: rotate(-45deg); }
    .has-navigation-js .site-navigation { position: absolute; inset: auto 0 auto; top: 100%; padding: var(--space-2) var(--pad); max-height: calc(100dvh - var(--compact-header-height,88px)); overflow-y: auto; background: var(--paper); border-bottom: 1px solid var(--line); z-index: 52; }
    .has-navigation-js .nav-list { flex-direction: column; align-items: stretch; font-size: 1rem; gap: 0; }
    .has-navigation-js .nav-list a { justify-content: space-between; min-height: 48px; padding: var(--space-2) var(--space-1); border-top: 1px solid var(--line); }
    .has-navigation-js .nav-list li:last-child a { padding: var(--space-2); margin-top: var(--space-2); }
    .nav-overlay:not([hidden]) { display: block; position: fixed; inset: var(--compact-header-height,88px) 0 0; background: rgba(16,29,54,.46); z-index: 45; }
    .menu-open { overflow: hidden; }
    .site-header:has(.site-navigation:not([hidden])) { flex-wrap: wrap; }
    .has-navigation-js .site-header { flex-wrap: nowrap; }
    .section, .company-panel { padding-block: var(--space-8); }
    .service-grid { grid-template-columns: minmax(0,1fr); }
    .service-card { padding: var(--space-4) var(--space-4) var(--space-8); }
    .service-card:not(:last-child) { border-right: 0; border-bottom: 1px solid var(--line); }
    .service-card h3 { font-size: 1.5rem; }
    .contact-band { gap: var(--space-4); }
}
@media (max-width:650px) {
    :root { --pad: var(--space-3); --text: 1rem; }
    .brand { font-size: 1.25rem; gap: var(--space-1); }
    .brand-icon { width: 32px; height: 40px; font-size: 1.5rem; }
    .brand small { font-size: var(--note); }
    .hero { grid-template-columns: minmax(0,1fr); gap: var(--space-4); padding-top: var(--space-4); }
    .hero-copy h1 { font-size: clamp(2.25rem,8.8vw,3rem); }
    .hero-art { min-height: 376px; padding: var(--space-3); }
    .art-grid { top: var(--space-8); width: 64%; left: 21%; max-width: 264px; }
    .art-label { font-size: var(--note); }
    .art-label > span:last-child { display: none; }
    .art-caption { font-size: 1rem; }
    .art-arrow { font-size: 2.5rem; }
    .hero-foot { font-size: var(--note); }
    .section { padding-block: var(--space-6); }
    h2, .approach-content h2, .company-panel h2, .contact-band h2 { font-size: 1.75rem; }
    .section-heading { margin-bottom: var(--space-3); }
    .approach-content { grid-template-columns: minmax(0,1fr); gap: var(--space-3); }
    .service-card { padding: var(--space-3) var(--space-3) var(--space-7); }
    .service-card h3 { font-size: 1.25rem; }
    .service-symbol { height: 64px; margin: var(--space-2) 0; }
    .company-panel { grid-template-columns: minmax(0,1fr); padding-block: var(--space-6); gap: var(--space-4); }
    .company-art { min-height: 320px; }
    .company-art > span { font-size: 13rem; }
    .news-row { grid-template-columns: 112px minmax(0,104px); gap: var(--space-1) var(--space-2); padding: var(--space-2) 0; }
    .news-row h3 { grid-column: 1/-1; font-size: var(--text); }
    .news-row h3 a { gap: var(--space-2); }
    .news-tag, .news-row time { font-size: var(--note); }
    .contact-band { flex-direction: column; align-items: stretch; padding-block: var(--space-6); gap: var(--space-3); }
    .contact-band .button { width: 100%; }
    .site-footer { padding-top: var(--space-4); }
    .footer-top, .footer-bottom { display: block; }
    .footer-top p { margin-top: var(--space-3); font-size: var(--text); }
    .footer-bottom a { margin-top: var(--space-1); }
    .page-header { padding-block: var(--space-5) var(--space-4); }
    .page-header h1 { font-size: 2rem; margin-bottom: var(--space-3); }
    .page-content { padding-block: var(--space-5) var(--space-6); }
    .content-body h2 { font-size: 1.5rem; }
    .content-body h3 { font-size: 1.25rem; }
    .content-body ul, .content-body ol { padding-left: var(--space-3); }
    .content-body .wp-block-table td, .content-body .wp-block-table th { padding: var(--space-1); font-size: var(--text); }
    .content-body .wp-block-table td:first-child { width: 30%; }
    .article-header h1 { font-size: 1.75rem; }
    .site-header > .site-navigation .nav-list { flex-wrap: wrap; }
    .has-navigation-js .site-header > .site-navigation .nav-list { flex-wrap: nowrap; }
}
@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Approved 2026-10-03 consulting design: readable services and an explicit process. */
:root{--ink:#213a46;--blue:#28645c;--paper:#fffefa;--white:#fff;--muted:#596a70;--line:#d1dcd9;--pad:32px;--text:1.125rem;--note:.875rem}
body,.editor-styles-wrapper{line-height:1.75}.phrase{display:inline-block;max-width:100%}.demo-strip{background:#edf2ee;color:var(--ink);justify-content:space-between;flex-wrap:wrap;padding-inline:max(var(--pad),calc((100vw - 1200px)/2))}.demo-strip a{min-height:24px;text-decoration:underline;text-underline-offset:4px}.site-header{min-height:96px;padding:24px max(var(--pad),calc((100vw - 1200px)/2));border-bottom:1px solid var(--line);background:var(--paper)}.brand{font-size:24px;font-weight:700;line-height:1.1;letter-spacing:.04em}.brand small{margin-top:8px;font-size:14px;font-weight:500;letter-spacing:.12em}.brand-icon{display:none}.nav-list{font-size:16px;gap:24px;font-weight:500}.nav-contact a,.nav-list li:last-child a{background:var(--blue);padding:12px 20px;min-height:48px}.hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);width:min(100%,1264px);padding:48px var(--pad);gap:64px;align-items:center}.hero-copy h1{font-size:clamp(38px,3.85vw,52px);font-weight:600;line-height:1.4;letter-spacing:0;margin-bottom:24px}.hero-copy .eyebrow{margin-bottom:16px;letter-spacing:.02em;font-weight:500}.hero-description{line-height:1.75;max-width:32em;margin-bottom:24px}.hero-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.hero-actions .button{min-height:52px;padding:12px 20px;gap:24px;background:var(--blue)}.hero-actions .text-link{font-size:16px;gap:16px}.path-visual{padding:32px;background:#edf3ef;border-left:3px solid var(--blue);border-radius:0 8px 8px 0}.path-visual>.eyebrow{color:var(--blue);margin-bottom:24px}.path-steps{list-style:none;margin:0;padding:0}.path-steps li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;padding:24px 0;border-top:1px solid #c6d4cf;align-items:start}.path-steps li:first-child{padding-top:0;border:0}.path-steps li:last-child{padding-bottom:0}.step-number{font-family:PortfolioStatic,PortfolioJP,sans-serif;font-size:38px;line-height:1.2;font-weight:500;color:var(--blue)}.path-steps h3{font-size:21px;font-weight:600;margin:0 0 8px;line-height:1.5}.path-steps p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}.hero-foot{display:none}.section{width:min(100%,1264px);padding:80px var(--pad);max-width:1264px}.section-heading{margin-bottom:32px}.section-heading h2,.approach-content h2{font-size:36px;line-height:1.45;font-weight:600}.services{background:var(--paper);border-top:1px solid var(--line)}.service-grid{display:block;border:0;border-top:1px solid var(--ink)}.service-card{display:grid;grid-template-columns:176px 180px minmax(0,1fr) 32px;gap:24px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line);position:static}.service-card:not(:last-child){border-right:0}.service-card:hover{background:#f0f5f1}.service-number{font-size:14px;font-weight:500;color:var(--blue);line-height:1.7}.service-card h3{font-size:24px;font-weight:600;line-height:1.5;margin:0}.service-card p{font-size:var(--text);line-height:1.75;margin:0;max-width:40em}.card-arrow{position:static;font-size:28px;line-height:1}.service-symbol{display:none}.approach{border-top:1px solid var(--line);background:#f5f7f2}.approach-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}.approach-text{font-size:var(--text);line-height:1.75}.approach-text p{margin-bottom:24px}.news-row{grid-template-columns:112px 104px minmax(0,1fr);padding:24px 0}.news-row h3{font-size:var(--text);font-weight:500}.news-row h3 a{line-height:1.7}.contact-band{background:var(--ink);padding:56px max(var(--pad),calc((100vw - 1200px)/2));gap:40px;align-items:center}.contact-band h2{font-size:36px;font-weight:500;line-height:1.45}.contact-band p:not(.eyebrow){color:#d7e3e4;margin:0}.button{min-height:52px;padding:12px 24px;font-weight:500;background:var(--blue)}.site-footer{padding:40px max(var(--pad),calc((100vw - 1200px)/2))}.footer-top{margin-bottom:32px}.footer-top p{font-size:16px}.footer-bottom{gap:24px}.page-header{background:#edf3ef;color:var(--ink);padding:48px max(var(--pad),calc((100vw - 1200px)/2));border-bottom:1px solid var(--line)}.page-header .eyebrow{color:var(--blue)}.page-header h1{font-size:clamp(32px,3.4vw,46px);font-weight:600;line-height:1.4;margin-bottom:24px;max-width:24em}.breadcrumb,.breadcrumb-current,.article-header time{color:var(--muted)}.page-content{width:min(100%,1064px);max-width:1064px;padding:64px var(--pad) 80px}.page-content.news-list{max-width:1264px;width:min(100%,1264px)}.content-body{font-size:var(--text);line-height:1.75}.page-lead{font-size:var(--text);max-width:40em;margin-bottom:40px}.content-body h2{font-size:30px;font-weight:600;line-height:1.5;margin-top:48px;margin-bottom:24px;padding:0}.content-body h3{font-size:23px;font-weight:600;line-height:1.5}.content-body .service-detail h2{margin-top:8px}.service-detail{padding:32px 0;border-top:1px solid var(--line);scroll-margin-top:120px}.service-detail .eyebrow{margin-bottom:8px;color:var(--blue)}.service-detail p:not(.eyebrow){max-width:40em}.service-detail dl,.company-facts{margin:24px 0 0}.service-detail dl>div,.company-facts>div{display:grid;grid-template-columns:136px minmax(0,1fr);gap:24px;border-top:1px solid var(--line);padding:16px 0}.service-detail dt,.company-facts dt{font-weight:500}.service-detail dd,.company-facts dd{margin:0;color:var(--muted)}.principle-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.principle-list h3{margin-top:0}.principle-list p{color:var(--muted)}.sample-note{padding:24px;background:#edf3ef;margin-top:32px;color:var(--ink)}.sample-note h3{margin-top:0}.sample-note p{margin-bottom:16px}.content-body .sample-note a,.content-body>a.button{color:#fff;text-decoration:none}.content-body .sample-note .text-link{color:var(--ink);text-decoration:none}.consultation-steps{padding-left:32px}.consultation-steps li{padding-left:8px;margin-bottom:24px}.consultation-steps h3{margin:0 0 12px}.content-body>time{display:block;font-size:14px;color:var(--muted);margin-bottom:24px}.content-body blockquote{background:#edf3ef;border-color:var(--blue)}
@media(min-width:1600px){.services{padding-inline:var(--pad)}.contact-band,.site-header,.site-footer,.demo-strip,.page-header{padding-inline:max(var(--pad),calc((100vw - 1200px)/2))}}
@media(max-width:1100px){.hero{gap:32px}.hero-copy h1{font-size:42px}.path-visual{padding:24px}.service-card{grid-template-columns:140px 140px minmax(0,1fr) 24px;gap:20px}.service-card h3{font-size:23px}.approach-content{gap:40px}.nav-list{gap:16px}}
@media(max-width:900px){.site-header{min-height:88px;padding-block:16px}.hero{grid-template-columns:1fr 1fr;gap:24px}.hero-copy h1{font-size:36px}.hero-actions{gap:16px}.path-visual{padding:24px 20px}.path-steps li{grid-template-columns:40px 1fr;gap:12px;padding-block:20px}.step-number{font-size:32px}.path-steps h3{font-size:19px}.section{padding-block:64px}.service-card{grid-template-columns:112px 128px minmax(0,1fr) 24px;padding:24px 0;gap:16px}.service-number{overflow-wrap:anywhere}.service-card h3{font-size:22px}.service-card p{font-size:16px}.contact-band h2{font-size:30px}.principle-list{grid-template-columns:1fr;gap:24px}}
@media(max-width:650px){:root{--pad:24px;--text:1rem}.brand{font-size:21px;gap:0}.brand small{font-size:14px;margin-top:6px}.site-header{gap:12px}.demo-strip{gap:8px;line-height:1.7}.hero{grid-template-columns:1fr;padding:32px var(--pad);gap:32px}.hero-copy h1{font-size:32px;line-height:1.45;margin-bottom:20px}.hero-copy .eyebrow{font-size:14px;margin-bottom:12px}.hero-description{font-size:16px;line-height:1.75;margin-bottom:20px}.hero-actions{gap:16px}.hero-actions .text-link{font-size:16px}.path-visual{padding:24px}.path-steps li{grid-template-columns:44px 1fr}.step-number{font-size:34px}.path-steps h3{font-size:21px}.path-steps p{font-size:14px}.section{padding-block:56px}.section-heading h2,.approach-content h2{font-size:28px}.section-heading{margin-bottom:24px}.service-card{grid-template-columns:minmax(0,1fr) 24px;gap:12px;padding:24px 0}.service-number{grid-column:1}.service-card h3{font-size:23px;grid-column:1}.service-card p{grid-column:1;max-width:none}.service-card .card-arrow{grid-column:2;grid-row:2}.approach-content{grid-template-columns:1fr;gap:24px}.news-row{grid-template-columns:112px 1fr;gap:12px;padding-block:20px}.news-row h3{grid-column:1/-1}.news-tag{justify-self:start;min-width:88px}.contact-band{flex-direction:column;align-items:start;padding-block:40px;gap:24px}.contact-band h2{font-size:28px}.site-footer{padding-block:32px}.footer-top{gap:24px;margin-bottom:24px}.page-header{padding-block:32px}.page-header h1{font-size:32px;margin-bottom:16px}.page-content{padding-block:48px 56px}.content-body h2{font-size:26px;margin-top:40px}.service-detail{padding-block:24px}.service-detail dl>div,.company-facts>div{grid-template-columns:96px 1fr;gap:16px}.service-detail dt,.company-facts dt{font-size:14px}.sample-note{padding:20px}.footer-bottom{flex-direction:column;align-items:start}}
@media(max-width:359px){:root{--pad:20px}.brand{font-size:20px}.hero-copy h1{font-size:30px}.hero-actions{align-items:start;flex-direction:column}.path-visual{padding:20px}.path-steps h3{font-size:20px}.page-header h1{font-size:30px}.service-detail dl>div,.company-facts>div{grid-template-columns:80px 1fr;gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.button.button-white{background:#fff;color:var(--ink)}
button{max-width:100%;white-space:normal;overflow-wrap:break-word;min-width:0}

@media(max-width:650px){.service-card{grid-template-columns:minmax(0,1fr) max-content}}
