/* MintSpark corporate gradient artwork. */
.hero{background:#052c2b}
.hero-stage{background:radial-gradient(ellipse at 80% 70%,#0c6356,transparent 60%),linear-gradient(120deg,#052c2b,#063b37);color:#f6fffc}
#light-field{opacity:1}
#light-field,#pointer-surface{pointer-events:none}
#pointer-surface{position:absolute;inset:0;width:100%;height:100%}
.cc-symbol svg{display:block;width:56px;height:56px;overflow:visible;fill:none;stroke:var(--mint);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:none}
.hero-word,.hero-word span:last-child{color:#f6fffc}
.hero-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:48px}
.hero-word{font-size:clamp(136px,min(16vw,24svh),256px)}
@keyframes hero-word-enter{
 from{opacity:0;transform:translateX(-72px)}
 to{opacity:1;transform:translateX(0)}
}
@media(prefers-reduced-motion:no-preference){
 .hero-word>span{animation:hero-word-enter .85s cubic-bezier(.22,.7,.25,1) both;animation-delay:.08s}
 .hero-word>span:nth-child(2){animation-delay:.16s}
 .hero-word>span:nth-child(3){animation-delay:.24s}
}
.hero.hero-arrived .hero-word>span{animation:none;opacity:1;transform:none}
@media(max-width:760px){
 .hero-word{font-size:clamp(72px,26vw,160px);letter-spacing:-.045em}
 .hero-word span:nth-child(2){margin-right:.025em}
 .hero-word>span:nth-child(3){animation-delay:.16s}
}
.hero-message h1{color:#fff}
@media(min-width:761px) and (max-width:960px){.hero-message h1{font-size:24px}}
.hero-description{color:#d7eee8;font-size:15px;line-height:2.2}
.hero-foot{justify-content:flex-end}
#motion-toggle{color:#d7eee8;font-size:12px;min-height:44px;padding:10px 0}
.hero a:focus-visible,.hero button:focus-visible{outline-color:#d7fff0}
.service-row{grid-template-columns:1fr 58px;gap:30px}
.service-row h3{margin-top:0}
.service-phrase{display:inline-block}
.service-row div>p:last-child{font-size:14px}
.cc-panel{background:linear-gradient(125deg,#dfefe8 0%,#edf7f1 65%,#f4faf6 100%);border:1px solid #bfd8cc;border-radius:4px;box-shadow:0 22px 42px -25px #14504452,0 5px 12px -8px #174f3e3d}
.cc-panel h3{margin-top:0;color:#153c34}
.cc-panel .cc-symbol{width:64px;height:64px;background:transparent;border:0}
.js .cc-panel.reveal.ready{opacity:0;transform:translate3d(0,36px,0);transition:opacity .8s cubic-bezier(.2,.65,.3,1),transform .9s cubic-bezier(.2,.65,.3,1)}
.js .cc-panel.reveal.in-view{opacity:1;transform:translate3d(0,0,0)}
@media(prefers-reduced-motion:reduce){.js .cc-panel.reveal.ready{opacity:1;transform:none;transition:none}}
.cc-panel p:not(.eyebrow){font-size:14px}
@media(max-width:1100px){.service-row{grid-template-columns:1fr 52px}}
@media(max-width:760px){
 .hero-inner{padding-top:112px}
 .hero-word{margin-top:25px}
 .hero-message{padding-top:30px}
 .hero-description{font-size:14px;margin-top:20px;line-height:2}
 .hero-foot{margin-top:22px}
 .service-row{grid-template-columns:1fr 32px;gap:16px}
 .service-row div>p:last-child{font-size:13px}
 .cc-panel p:not(.eyebrow){font-size:13px}
 .cc-panel .cc-symbol{width:42px;height:48px;margin-top:1px}
 .cc-symbol svg{width:42px;height:42px;filter:none}
}
@media(max-width:360px){.hero-message{padding-top:26px}.hero-description{font-size:13px}}

/* Japanese headings use a consistent Gothic rhythm. */
.hero-message h1{font-weight:600;letter-spacing:.035em;line-height:1.65}
.hero-description{font-family:var(--sans);font-weight:400;letter-spacing:.01em;line-height:2}
.about-body h3,.service-lead h3,.case-body h3{font-weight:600;letter-spacing:.015em;line-height:1.75}
.service-row h3{font-weight:600;letter-spacing:.01em;line-height:1.6}
.cc-panel h3{font-weight:600;letter-spacing:.01em;line-height:1.7}
.case-body blockquote{font-weight:500;letter-spacing:.01em;line-height:1.8}
.detail-head h1{font-weight:600;letter-spacing:.015em;line-height:1.65}
.detail-section>h2{font-weight:600;letter-spacing:.01em}
.site-menu a{font-weight:500;letter-spacing:.01em}
.footer-main>div>p:first-child{font-weight:500;letter-spacing:.01em}
@media(max-width:760px){.hero-message h1{font-size:25px;letter-spacing:.02em;line-height:1.65}.detail-head h1{font-size:clamp(23px,6.8vw,28px)}.consult-main .detail-head h1{font-size:clamp(21px,6.2vw,27px)}}
@media(max-width:360px){.hero-message h1{font-size:23px}}

/* Credentials share the same three rows at every side-by-side width. */
.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;align-items:stretch}
.proof-grid>div{min-width:0;display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:14px}
.proof-grid>div+div{border:0;padding:0}
.proof-grid .proof-title{font-family:var(--sans);font-size:20px;font-weight:600;letter-spacing:0;line-height:1.65;margin:0;overflow-wrap:anywhere}
.proof-grid .proof-registration{font-size:15px;font-weight:400;line-height:1.9;margin:0;color:var(--ink)}
.proof-grid p:last-child{font-size:15px;line-height:1.9;margin:0;color:var(--ink)}
.proof-grid p:last-child br{display:none}
.link-arrow{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.text-link>span,.quiet-link>span,.consult-cta>span{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}
.text-link>span,.quiet-link>span{transition:transform .22s ease}
.text-link:hover>span,.quiet-link:hover>span{transform:translateX(4px)}
.desktop-nav .link-arrow,.footer .link-arrow{width:16px;height:16px}
.desktop-nav a>span{display:inline-flex;vertical-align:middle}
.consult-cta .link-arrow{width:20px;height:20px}
.news-list a>.link-arrow,.news-list a>span:last-child{align-self:center}
.news-list .link-arrow{width:20px;height:20px}
.news-list a{grid-template-columns:96px minmax(0,1fr) 20px}
@media(max-width:760px){.news-list a{grid-template-columns:minmax(0,1fr) 20px}}
@media(max-width:640px){
 .proof-grid{grid-template-columns:minmax(0,1fr);row-gap:10px}
 .proof-grid>div{grid-template-rows:auto auto auto;grid-row:auto;row-gap:10px}
 .proof-grid>div+div{border-top:1px solid var(--line);padding-top:22px;margin-top:12px}
 .proof-grid .proof-title{font-size:20px}
 .proof-grid .proof-registration,.proof-grid p:last-child{font-size:15px}
}
@media(prefers-reduced-motion:reduce){.text-link>span,.quiet-link>span{transition:none}.text-link:hover>span,.quiet-link:hover>span{transform:none}}

/* Shared reading rhythm for home, support and consultation. */
:root{--text-body:16px;--text-note:14px;--text-link:15px}
.section-wrap{padding-top:112px;padding-bottom:112px}
.about,.service-intro,.case,.news{grid-template-columns:1fr 1.2fr;column-gap:8%}
.about-body>p,.service-lead>p,.case-body>p:not(.case-client),.detail-list p,.cc-panel p:not(.eyebrow),.case-brief .detail-summary{font-size:var(--text-body);line-height:2;letter-spacing:.01em}
.about-body>p,.service-lead>p,.case-body>p:not(.case-client){margin-top:24px}
.service-intro{padding-bottom:48px}
.service-list{margin-top:0}
.service-row{padding-top:32px;padding-bottom:32px}
.service-row:hover{padding-left:0}
.service-row h3{font-size:24px;line-height:1.65}
.service-row div>p:last-child{font-size:var(--text-body);line-height:2;margin-top:8px}
.case-body>.case-client,.case-client{font-size:var(--text-note)!important;line-height:1.9}
.text-link,.quiet-link{font-size:var(--text-link);line-height:1.7;gap:24px;padding:16px 0;margin-top:32px}
.quiet-link,.site-menu a,.footer-main nav a{align-items:center}
.news{padding-top:24px}
.news-list a{align-items:center}
.news-list .news-title{font-size:16px;line-height:1.9}
.news-list time{font-size:14px;line-height:1.9;padding-top:0}
.footer-main nav{font-size:var(--text-note)}
.footer-main nav a{min-height:32px}
.footer-response{font-size:var(--text-note);line-height:1.9;margin-top:24px}
.footer-bottom,.footer-bottom small{font-size:13px}
.footer-bottom>div{flex-wrap:wrap;row-gap:8px}
.breadcrumbs{font-size:14px;line-height:1.7;margin-bottom:40px}
.detail-head{padding-bottom:48px}
.detail-head h1{font-size:clamp(32px,3.4vw,46px);line-height:1.6}
.detail-summary,.form-response{font-size:16px;line-height:2}
.detail-expertise{font-size:15px;line-height:1.9;margin-top:24px}
.detail-section{grid-template-columns:200px minmax(0,1fr);column-gap:40px;padding:48px 0}
.detail-section>h2{font-size:20px;line-height:1.7}
.detail-list h3{font-size:18px;line-height:1.7}
.detail-list li+li{margin-top:24px}
.detail-note,.report-hint,.report-slide figcaption,.form-small{font-size:var(--text-note);line-height:1.9}
.detail-note{margin-top:24px}
.case-brief .detail-summary{margin-top:0}
.case-brief .case-client{margin-bottom:16px!important}
.report-hint{margin-bottom:24px}
.price-lines>div{align-items:baseline;gap:24px;padding:16px 0;font-size:var(--text-body);line-height:1.9}
.price-lines dd{white-space:nowrap;font-variant-numeric:tabular-nums}
.consult-main .detail-head{padding-bottom:32px}
.consult-person{padding:24px 0;margin:0 0 24px}
.consult-credential{font-size:14px;line-height:1.9;word-break:keep-all;text-wrap:balance}
.preview-note{font-size:var(--text-note);line-height:1.9;padding:16px}
.preview-form{margin-top:24px}
.preview-form legend{font-size:16px;line-height:1.7;margin-bottom:16px}
.topics{padding:24px;margin-bottom:24px}
.topics label,.fields label,.optional-fields{font-size:16px;line-height:1.9}
.fields label{margin-top:16px}
.fields label:first-child{margin-top:0}
.fields input,.fields textarea,.optional-fields input{font-size:16px;line-height:1.7}
.optional-fields{margin-top:24px}
.form-action{margin-top:32px}
.form-action .button{font-size:16px;line-height:1.7;align-items:center;padding:20px}
.form-action .button>span{display:inline-flex;flex-shrink:0}
.form-small{margin-top:16px}
@media(max-width:1100px){.detail-section{grid-template-columns:180px minmax(0,1fr);column-gap:32px}}
@media(max-width:760px){
 :root{--text-body:16px;--text-note:14px;--text-link:15px}
 .section-wrap{padding-top:72px;padding-bottom:72px}
 .consult-cta{white-space:nowrap;flex-shrink:0}
 .hero-description{font-size:var(--text-body)}
 .about-body,.service-lead,.case-body,.news-list{margin-top:32px}
 .about-body h3,.service-lead h3,.case-body h3{font-size:24px;line-height:1.75}
 .service-intro{padding-bottom:32px}
 .service-row{padding-top:24px;padding-bottom:24px}
 .service-row h3{font-size:20px}
 .cc-panel{gap:20px 16px;padding:24px 20px;margin-top:32px}
 .cc-panel h3{font-size:18px}
 .news{padding-top:24px}
 .footer-bottom>div{font-size:13px}
 .breadcrumbs{font-size:14px;margin-bottom:32px}
 .detail-main{padding-top:114px}
 .detail-head,.consult-main .detail-head{padding-bottom:32px}
 .detail-head h1{font-size:clamp(23px,6.7vw,28px)}
 .consult-main .detail-head h1{font-size:clamp(21px,6.2vw,27px)}
 .detail-summary,.form-response{font-size:16px}
 .detail-section{grid-template-columns:minmax(0,1fr);row-gap:24px;padding:32px 0}
 .detail-list h3{font-size:17px}
 .detail-list li+li{margin-top:24px}
 .price-lines>div{gap:12px}
 .topics{padding:20px}
 .form-action .button{font-size:16px;padding:18px}
 .form-small a{margin-left:0}
 .form-small a:first-of-type{margin-left:8px}
}
@media(max-width:360px){
 .service-row h3{font-size:20px}
 .header{padding-right:14px;padding-left:14px;gap:6px}
 .header .brand{font-size:22px}
 .consult-cta{min-width:0;font-size:11px;gap:8px;padding-right:10px;padding-left:10px}
 .consult-cta .link-arrow{width:18px;height:18px}
}

/* Existing work and public tool samples make the service concrete. */
.cc-panel{grid-template-columns:minmax(0,1fr) minmax(280px,379px);gap:36px;padding:36px;align-items:center}
.tool-copy{min-width:0}
.tool-title{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.cc-panel .tool-title .cc-symbol{flex:0 0 48px;width:48px;height:48px;margin:0}
.cc-panel .tool-title svg{width:44px;height:44px}
.cc-panel .tool-title h3{margin:0;font-size:21px;line-height:1.65}
.tool-copy>p+p{margin-top:12px}
.tool-copy>.text-link{margin-top:20px;max-width:320px}
.tool-result{margin:0;min-width:0}
.tool-result img{display:block;width:100%;max-width:379px;margin:auto;border:1px solid #dce6e1;border-radius:8px;background:#f5f7f8;box-shadow:0 10px 24px -16px #14504455}
.tool-result figcaption{font-size:var(--text-note);line-height:1.8;color:var(--muted);margin-top:14px}
.case-steps{margin:28px 0 0;display:grid;gap:22px}
.case-steps dt{font-size:var(--text-note);font-weight:600;color:var(--mint);line-height:1.7;margin-bottom:8px}
.case-steps dd{margin:0;font-size:var(--text-body);line-height:2;letter-spacing:.01em}
.case-body blockquote p,.case-brief blockquote p{font-size:24px;line-height:1.8;font-weight:500;letter-spacing:.01em}
.case-body blockquote cite,.case-brief blockquote cite{display:block;font-size:var(--text-note);line-height:1.8;font-style:normal;color:var(--muted);margin-top:12px}
.case-brief .case-steps{margin-top:0}
.case-brief blockquote{margin:28px 0 0;padding:18px 0 18px 24px;border-left:2px solid #b6cfcb}
.price-lines.price-details>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 24px;padding:24px 0}
.price-details dt{font-weight:600}
.price-details .price-amount{font-size:18px;line-height:1.7}
.price-details .price-description{grid-column:1/-1;max-width:640px;white-space:normal;font-size:16px;line-height:1.9;font-weight:400;color:var(--ink)}
.price-description strong{font-weight:600;color:var(--mint)}
#pricing>.detail-note,#pricing>div>.detail-note{max-width:640px;font-size:14px;line-height:1.9;color:var(--ink)}
.consult-main .form-response{max-width:42em}
@media(max-width:960px){.cc-panel{grid-template-columns:minmax(0,1fr) minmax(230px,320px);gap:28px;padding:28px}.cc-panel .tool-title h3{font-size:20px}}
@media(max-width:760px){
 .cc-panel{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px 20px}
 .tool-title{gap:12px;margin-bottom:16px}
 .cc-panel .tool-title .cc-symbol{flex-basis:36px;width:36px;height:40px}
 .cc-panel .tool-title svg{width:36px;height:36px}
 .cc-panel .tool-title h3{font-size:18px}
 .tool-copy>.text-link{max-width:none;margin-top:20px}
 .tool-result figcaption{margin-top:12px}
 .case-steps{margin-top:24px;gap:20px}
 .case-body blockquote p,.case-brief blockquote p{font-size:21px}
 .case-brief blockquote{padding-left:20px}
 .price-lines.price-details>div{gap:10px 12px;padding:20px 0}
 .price-details .price-amount{font-size:17px}
 .price-details .price-description{font-size:16px}
}

/* The original product image floats as one sheet; its content stays intact. */
.cc-panel{grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:42px}
.cc-panel .tool-title h3{text-wrap:balance;line-break:strict}
.tool-result{isolation:isolate}
.tool-depth{position:relative;perspective:1300px;padding:14px 10px 34px}
.tool-depth:after{content:"";position:absolute;z-index:-1;left:2%;right:2%;bottom:0;height:34px;background:radial-gradient(ellipse,#2d5b4d45 0%,#2d5b4d17 40%,transparent 72%);pointer-events:none}
.tool-float{position:relative;transform-style:preserve-3d;transform-origin:50% 50%;transform:translate3d(0,-3px,0) rotateX(3deg) rotateY(-7deg);border-radius:8px;background:#f7f9fb;box-shadow:21px 26px 44px -19px #1d4c4452,3px 4px 0 #acc5be}
.tool-float:before{content:"";position:absolute;inset:0;z-index:-1;border:1px solid #b7cec7;border-radius:8px;background:linear-gradient(135deg,#edf5f1,#c4d8cf);transform:translate3d(5px,6px,-6px);pointer-events:none}
.tool-result .tool-float img{display:block;width:100%;max-width:none;height:auto;margin:0;border:1px solid #e0e9e5;border-radius:8px;box-shadow:none;background:#f7f9fb;backface-visibility:hidden}
.tool-result figcaption{margin-top:0;padding:0 8px;max-width:440px}
@keyframes tool-sample-float{0%,100%{transform:translate3d(0,0,0) rotateX(3deg) rotateY(-7deg)}50%{transform:translate3d(0,-8px,0) rotateX(2deg) rotateY(-5deg)}}
@media(min-width:761px) and (prefers-reduced-motion:no-preference){
 .tool-float{animation:tool-sample-float 8s ease-in-out infinite;animation-play-state:paused}
 .tool-result.is-visible:not(.motion-paused) .tool-float{animation-play-state:running}
 .cc-panel:focus-within .tool-float{animation-play-state:paused!important}
}
@media(hover:hover) and (pointer:fine){.tool-result:hover .tool-float{animation-play-state:paused!important}}
@media(min-width:761px) and (max-width:960px){.cc-panel{grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:28px}}
@media(max-width:760px){
 .cc-panel{grid-template-columns:minmax(0,1fr);gap:24px}
 .tool-depth{perspective:none;padding:8px 3px 28px}
 .tool-float{transform:none;box-shadow:8px 14px 30px -13px #1d4c4452,2px 3px 0 #acc5be}
 .tool-float:before{transform:translate(3px,4px)}
 .tool-result figcaption{padding:0;font-size:14px}
}
@media(prefers-reduced-motion:reduce){.tool-float{animation:none!important;transform:none}.tool-float:before{transform:translate(3px,4px)}}

/* Compact task cards, without nested descriptions or decorative labels. */
.task-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:14px 10px;margin:0;padding:0;list-style:none}
.task-card{position:relative;isolation:isolate;display:flex;align-items:center;min-width:0;min-height:100px;padding:24px 30px 24px 26px}
.task-card:before{content:"";position:absolute;inset:0;z-index:-1;background:#e0ece6;clip-path:polygon(0 0,calc(100% - 17px) 0,100% 50%,calc(100% - 17px) 100%,0 100%,11px 50%)}
.task-card h3{margin:0;color:#173e35;font-size:16px;line-height:1.75;font-weight:600;letter-spacing:0;line-break:strict;text-wrap:balance;overflow-wrap:normal}
.task-phrase{display:inline-block;white-space:nowrap;max-width:100%}
.support-section .detail-note{margin-top:20px}
.monthly-scope{max-width:640px;margin-top:40px;padding:0;background:none;border:0;border-radius:0}
.scope-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;margin-bottom:20px}
.scope-heading h3{font-size:20px;line-height:1.7;font-weight:600;margin:0}
.scope-heading p{font-size:15px;font-weight:400;line-height:1.8;color:var(--muted);margin:0}
.monthly-scope>p,.scope-boundary p{max-width:640px;font-size:16px;line-height:1.9;margin:0}
.scope-workload{width:100%;margin:24px 0 16px;border-collapse:collapse;font-size:16px;line-height:1.8;text-align:left}
.scope-workload th,.scope-workload td{padding:15px 0;border-bottom:1px solid var(--line);font-weight:400}
.scope-workload thead th{padding:10px 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.scope-workload th:last-child,.scope-workload td{text-align:right;white-space:nowrap;padding-left:24px;font-variant-numeric:tabular-nums}
.monthly-scope .scope-assumption{font-size:14px;line-height:1.9;color:var(--muted)}
.monthly-scope .scope-approval{font-size:15px;font-weight:400;line-height:1.9;color:var(--ink);margin:24px 0 20px}
.scope-boundary{border-top:1px solid var(--line);padding-top:0}
.scope-boundary summary{cursor:pointer;font-size:16px;line-height:1.9;font-weight:600;padding:16px 0;min-height:44px}
.scope-boundary summary:focus-visible{outline:2px solid var(--mint);outline-offset:4px}
.scope-boundary>div{padding-top:4px}
.scope-boundary h4{font-size:16px;font-weight:600;line-height:1.8;margin:0 0 8px}
.scope-boundary p+h4{margin-top:20px}
@media(max-width:1100px){.task-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .task-cards{gap:10px 8px}
 .task-card{min-height:90px;padding:18px 22px 18px 21px}
 .task-card:before{clip-path:polygon(0 0,calc(100% - 13px) 0,100% 50%,calc(100% - 13px) 100%,0 100%,8px 50%)}
 .task-card h3{font-size:16px;line-height:1.8}
 .monthly-scope{margin-top:32px}
 .scope-heading{display:block;margin-bottom:20px}.scope-heading h3{font-size:18px;margin-bottom:6px}
 .monthly-scope>p,.scope-boundary p{font-size:16px}
 .scope-workload{font-size:16px}
 .scope-workload th,.scope-workload td{padding-top:14px;padding-bottom:14px}
 .monthly-scope .scope-approval{font-size:14px}
}
@media(max-width:360px){.task-cards{grid-template-columns:minmax(0,1fr)}.task-card{min-height:64px;padding:16px 25px}}
