:root{font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;color:#23313d;background:#fff;font-size:16px;line-height:1.8}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;min-width:320px}
body.marketing-site{--brand:#2d5294;--brand-dark:#19386c;--tint:#edf3fc;--ink:#23313d;--accent:#dc7b48}
body.career-site{--brand:#b65c34;--brand-dark:#754126;--tint:#fff5ed;--ink:#332d2a;--accent:#eab45b}
a{color:inherit;text-decoration:none}
a:hover{color:var(--brand)}
button,input,textarea{font:inherit}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
img{max-width:100%}
.skip{position:fixed;top:-100px;left:12px;z-index:100;padding:8px 14px;background:#fff;border:1px solid var(--brand)}
.skip:focus{top:10px}
.service-wrap{width:min(100%,1180px);margin:auto;padding-inline:40px}
.service-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px;padding:8px 4%;background:#fff;border-bottom:1px solid #dde3e8}
.service-logo{display:block;flex:none;width:122px;height:64px}
.service-logo img{display:block;width:100%;height:100%;object-fit:contain}
.service-header nav{display:flex;align-items:center;gap:24px;font-size:14px;font-weight:700}
.service-header nav a:not(.nav-cta){padding-block:8px;border-bottom:2px solid transparent}
.service-header nav a:not(.nav-cta):hover{border-bottom-color:var(--brand)}
.nav-cta,.primary-button,.service-form button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:44px;padding:10px 22px;color:#fff;background:var(--brand);border:0;border-radius:6px;font-weight:700}
.nav-cta:hover,.primary-button:hover,.service-form button:hover{color:#fff;background:var(--brand-dark)}
.menu{display:none}
.service-hero{display:flex;align-items:center;min-height:590px}
.marketing-hero{background:#c3d7fd url("assets/marketing-hero.png") center center/cover no-repeat}
.career-hero{background:#fff7f0 url("assets/career-hero.png") right bottom/auto 90% no-repeat}
.service-hero .service-wrap{position:relative;z-index:1}
.service-hero h1{max-width:660px;margin:0;font-size:52px;font-weight:700;line-height:1.4;color:var(--ink)}
.career-hero h1{max-width:600px;font-size:43px}
.eyebrow{margin:0 0 18px;color:var(--brand);font-family:Arial,sans-serif;font-size:12px;font-weight:700}
.hero-subtitle{margin:12px 0 30px;font-size:24px;font-weight:700}
.service-hero .primary-button{margin-top:28px;min-width:190px}
.service-section{padding-block:88px}
.service-section.soft{background:var(--tint)}
.service-section h2{margin:0 0 26px;font-size:34px;font-weight:700;line-height:1.5}
.service-section h3{line-height:1.5}
.service-section p{max-width:80ch}
.text-narrow{max-width:920px}
.text-narrow p{margin:0 0 20px;line-height:2.1}
.problem-grid,.strength-grid,.results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.problem-grid>div,.strength-grid>article,.results-grid>div{min-width:0;padding:25px 0;border-top:2px solid var(--brand)}
.problem-grid span,.strength-grid span{color:var(--brand);font-family:Arial,sans-serif;font-size:13px;font-weight:700}
.problem-grid h3,.strength-grid h3{margin:14px 0;font-size:21px}
.problem-grid p,.strength-grid p,.results-grid p{margin:0;color:#536472}
.statement{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-top:60px;padding:36px;border-left:4px solid var(--accent);background:var(--tint)}
.statement h2{margin:0;font-size:29px}
.statement p{margin:0}
.results-grid strong{display:inline-block;margin:18px 4px 16px 0;color:var(--brand);font-family:Arial,sans-serif;font-size:52px;line-height:1}
.results-grid small{font-size:13px}
.results-grid>div>span{display:block;font-weight:700}
.results-grid h3{margin:0 0 12px;font-size:19px}
.table-scroll{overflow-x:auto;border:1px solid #ccdae8;border-radius:6px;background:#fff}
.price-table{width:100%;min-width:760px;border-collapse:collapse;text-align:center}
.price-table th,.price-table td{padding:22px 14px;border:1px solid #ccdae8}
.price-table thead th{color:#fff;background:var(--brand);font-size:17px}
.price-table tbody th{background:#f8fafc;white-space:nowrap}
.price-table td{font-weight:600}
.two-column{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:60px;align-items:start}
.contact-section p{color:#536472}
.service-form{display:grid;gap:18px;padding:28px;background:#fff;border:1px solid #d6dfe6;border-radius:8px}
.service-form>label:not(.check){display:grid;gap:6px;font-size:14px;font-weight:700}
.service-form input:not([type="checkbox"]):not([type="radio"]),.service-form textarea{display:block;width:100%;min-height:44px;padding:10px 12px;color:#23313d;background:#fff;border:1px solid #aebdc9;border-radius:4px;font-size:16px}
.service-form textarea{min-height:120px;resize:vertical}
.service-form fieldset{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding:14px;border:1px solid #d6dfe6;border-radius:4px}
.service-form legend{padding-inline:4px;font-size:14px;font-weight:700}
.service-form fieldset label{white-space:nowrap;font-size:14px}
.service-form input[type="checkbox"],.service-form input[type="radio"]{accent-color:var(--brand)}
.service-form .check{display:flex;gap:8px;align-items:flex-start;font-size:14px}
.service-form .check input{margin-top:6px}
.service-form .check a{text-decoration:underline;text-underline-offset:3px}
.service-form button{width:100%}
.trap{position:absolute;left:-9999px}
.field-list{display:grid;gap:22px}
.field-list article{display:grid;grid-template-columns:240px minmax(0,1fr);gap:0 36px;padding:32px 0;border-top:1px solid #dacfc4}
.field-list article>span{grid-column:1;color:var(--brand);font-family:Arial,sans-serif;font-size:12px;font-weight:700}
.field-list h3{grid-column:1;margin:8px 0 0;font-size:25px}
.field-list p,.field-list h4,.field-list ul{grid-column:2}
.field-list p{grid-row:1/span 2;margin:0 0 14px}
.field-list h4{margin:14px 0 8px;font-size:14px}
.field-list ul{display:flex;flex-wrap:wrap;gap:8px 14px;list-style:none;margin:0;padding:0}
.field-list li{padding:5px 10px;border:1px solid #ddcec1;border-radius:4px;background:#fff;font-size:13px}
.flow-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 42px;list-style:none;margin:0 0 30px;padding:0}
.flow-list li{display:grid;grid-template-columns:54px 1fr;gap:14px;padding:24px 0;border-top:1px solid #e0d7cf}
.flow-list li>span{color:var(--brand);font-family:Arial,sans-serif;font-size:25px;font-weight:700}
.flow-list h3{margin:0 0 8px;font-size:19px}
.flow-list p{margin:0;color:#5e5a56}
.note{margin:7px 0;font-size:14px}
.service-company{max-width:880px;margin:0 0 25px}
.service-company>div{display:grid;grid-template-columns:140px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid #ddcec1}
.service-company dt{color:#71665f}
.service-company dd{margin:0;overflow-wrap:anywhere}
.service-company dd a,.text-link{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.office-band img{display:block;width:100%;max-height:420px;object-fit:cover}
.service-footer{padding:46px 0 24px;color:#fff;background:var(--brand-dark)}
.service-footer .service-wrap{display:grid;gap:24px}
.service-footer .service-wrap>a{font-size:21px;font-weight:700}
.service-footer .service-wrap>div{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:13px}
.service-footer a:hover{color:#fff;text-decoration:underline}
.service-footer small{padding-top:18px;border-top:1px solid #ffffff50;color:#e4e6e8}
.document-page{min-height:calc(100vh - 250px)}
.document-page .service-section{padding-top:55px}
.document-page h1{margin:0 0 28px;font-size:36px}
.document-page h2{margin-top:42px;font-size:24px}
.document-page h3{font-size:18px}
.document-page p,.document-page li{line-height:2}
.document-page img{display:block;width:100%;max-width:850px;height:auto;margin:20px auto;border:1px solid #ddd}
.document-page .table-scroll{margin:24px 0}
.document-page table{width:100%;border-collapse:collapse}
.document-page th,.document-page td{padding:16px;border:1px solid #d7dfe5;text-align:left}
.document-page th{background:var(--tint)}
.message-page{min-height:calc(100vh - 250px);padding:90px 0}
.message-page h1{font-size:35px}
@media(max-width:900px){.service-wrap{padding-inline:28px}.service-header nav{gap:14px}.service-hero{min-height:510px}.service-hero h1{font-size:44px}.career-hero h1{max-width:440px;font-size:37px}.two-column{gap:30px}.field-list article{grid-template-columns:190px 1fr}}
@media(max-width:720px){html{scroll-padding-top:76px}.service-wrap{padding-inline:22px}.service-header{min-height:76px;padding-inline:22px}.service-logo{width:104px;height:56px}.menu{display:inline-flex;align-items:center;justify-content:center;min-width:88px;height:40px;padding:0 12px;color:var(--brand-dark);background:#fff;border:1px solid #d6dfe6;border-radius:6px;font-size:14px;font-weight:700}.service-header nav{position:absolute;top:76px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:3px;padding:14px 22px 22px;background:#fff;border-bottom:1px solid #d6dfe6;box-shadow:0 10px 20px #23313d18}.service-header nav.open{display:flex}.service-header nav a:not(.nav-cta){padding:10px 2px}.service-hero{align-items:flex-start;min-height:580px;padding-top:44px}.marketing-hero{background-position:62% center}.career-hero{background-size:auto 62%;background-position:right bottom}.service-hero h1{max-width:390px;font-size:39px}.career-hero h1{max-width:520px;font-size:34px}.hero-subtitle{font-size:20px}.service-section{padding-block:64px}.service-section h2{font-size:29px}.problem-grid,.strength-grid,.results-grid,.flow-list,.two-column{grid-template-columns:1fr}.problem-grid,.strength-grid,.results-grid{gap:6px}.statement{grid-template-columns:1fr;gap:12px;padding:25px}.statement h2{font-size:25px}.field-list article{grid-template-columns:1fr;gap:8px}.field-list article>span,.field-list h3,.field-list p,.field-list h4,.field-list ul{grid-column:1;grid-row:auto}.field-list h3{margin:0}.flow-list{gap:0}.document-page h1{font-size:29px}}
@media(max-width:480px){.service-hero{min-height:560px}.marketing-hero{background-size:auto 72%;background-position:58% bottom;background-color:#c3d7fd}.career-hero{background-size:auto 54%}.service-hero h1{font-size:33px}.career-hero h1{font-size:29px}.hero-subtitle{font-size:17px}.service-section h2{font-size:25px}.service-form{padding:20px}.service-company>div{grid-template-columns:1fr;gap:3px}.service-footer .service-wrap>div{flex-direction:column}.document-page th,.document-page td{padding:10px;font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
